logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VBA - jak skopiować dane z Excela do nowego pliku Access (accdb)?

nina.h 27 Kwi 2014 19:15 2961 10
REKLAMA
  • #1 13548579
    nina.h
    Poziom 9  
    Posty: 8
    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?
  • REKLAMA
  • REKLAMA
  • REKLAMA
  • #4 13551575
    nina.h
    Poziom 9  
    Posty: 8
    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
  • #5 13551741
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Zacznij od sprecyzowania, czy chcesz to zrobić z poziomu VBA w Excelu czy w Accesie.
  • #6 13551786
    nina.h
    Poziom 9  
    Posty: 8
    z poziomu vba w excelu, moja baza ma ponad 200 kolumn
  • REKLAMA
  • #7 13552739
    PRL
    Poziom 41  
    Posty: 6948
    Pomógł: 953
    Ocena: 905
    Skoro tak, to:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Oczywiście w Excelu dodaj referencje do Akcesa.
    Pomogłem? Kup mi kawę.
  • #9 13554589
    nina.h
    Poziom 9  
    Posty: 8
    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)
  • #10 13555713
    PRL
    Poziom 41  
    Posty: 6948
    Pomógł: 953
    Ocena: 905
    Wynika z tego, że nie rozumiesz kodu.
    Zamień True na False:

    Kod: text
    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'.
    Pomogłem? Kup mi kawę.
  • #11 13557276
    nina.h
    Poziom 9  
    Posty: 8
    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

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukuje pomocy w skopiowaniu danych z Excela do nowego pliku Access (accdb) za pomocą VBA. Po utworzeniu pustego pliku Access, napotyka problemy z przeniesieniem danych, mimo przeglądania różnych kodów w Internecie. Odpowiedzi sugerują użycie metody DoCmd.TransferSpreadsheet, z uwzględnieniem referencji do biblioteki Access. Użytkownik wskazuje na problemy z nagłówkami zawierającymi niedozwolone znaki oraz brakiem odpowiednich pól w tabeli Access. Proponowane rozwiązania obejmują zmianę wartości True na False w kodzie, co pozwala na dodawanie rekordów do istniejącej tabeli, oraz utworzenie tabeli podczas pierwszego importu z wartością True, co generuje kolumny na podstawie pierwszego wiersza z Excela.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA