Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA - import danych z excela do pliku accdb

nina.h 27 Kwi 2014 19:15 1782 10
  • #1 27 Kwi 2014 19:15
    nina.h
    Poziom 6  

    Cześć,
    potrzebuję z poziomu VBA skopiować bazę z excela do accessa (tj. utworzyć nowy plik accessowy i skopiować do niego zaznaczone w excelu dane). Pusty plik accessowy utworzyłam, ale mam problem z tym przeniesieniem danych (w internecie jest mnóstwo różnych kodów, wykorzystujących różne referencje, ale przejrzałam już sporo i nadal nie mogę skopiować tych danych). Czy ktoś mógłby mi pomóc?

    0 10
  • #2 28 Kwi 2014 05:05
    PRL
    Poziom 34  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #4 28 Kwi 2014 19:42
    nina.h
    Poziom 6  

    Nie działa, jakie referencje dodajesz? Bo ja tworząc tabelę używam MO 12.0 Access database engine object library, może innym sposobem tworzysz tabelę w Accessie

    0
  • #5 28 Kwi 2014 20:27
    marcinj12
    Poziom 40  

    Zacznij od sprecyzowania, czy chcesz to zrobić z poziomu VBA w Excelu czy w Accesie.

    0
  • #6 28 Kwi 2014 20:35
    nina.h
    Poziom 6  

    z poziomu vba w excelu, moja baza ma ponad 200 kolumn

    0
  • #7 29 Kwi 2014 01:54
    PRL
    Poziom 34  

    Skoro tak, to:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Oczywiście w Excelu dodaj referencje do Akcesa.

    0
  • #9 29 Kwi 2014 19:54
    nina.h
    Poziom 6  

    Wywala mi błąd, że w mojej tabeli accessowej brakuje pól o takich nazwach, jak chcę skopiować (bo przy jej tworzeniu nie dodaję sama kolumn). Nie chcę nagłówków podawać na sztywno przy tworzeniu tabeli accessowej... Jak sobie z tym poradzić? To co ja chcę zrobić:
    -utworzyć nowy plik accessowy
    -skopiować do niego dane z excela
    -zamknąć ten plik
    (oczywiście w dużym uproszczeniu, to wszystko ma działać na zakresach dynamicznych itp)

    0
  • #10 30 Kwi 2014 04:15
    PRL
    Poziom 34  

    Wynika z tego, że nie rozumiesz kodu.
    Zamień True na False:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    P.S. Trochę nieprecyzyjnie się wypowiedziałaś.
    A więc tak:
    - jeżeli w Akcesie nie ma tabeli, to powyższy import ją utworzy,
    - jeżeli jest wartość 'True', to zostanie stworzona tabela, której nazwy kolumn powstaną na podstawie pierwszego wiersza z określonego zakresu.
    Najwygodniej jest za pierwszym razem utworzyć tabelę podczas importu z wartością 'True', a kolejne (wtedy do istniejącej tabeli będą dodawane rekordy) z wartością 'False'.

    0
  • #11 30 Kwi 2014 17:34
    nina.h
    Poziom 6  

    Rozumiem kod, wiem, że wartość True oznacza, że mój pierwszy wiersz ma nagłówki. Tu problem był innej postaci- nagłówki zawierały niedozwolone znaki

    0