Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 3
  • 419

Witam.

Jaki jest najlepszy sposób na eksport tabel i kwerend z Accessa do Excela za pomocą VBA?

Ważne, żeby program sprawdzał, czy Excel już jest otwarty i żeby nie próbował go otworzyć drugi raz.

Pozdrawiam.
Michał.

Michał_Gwiazdonik
  • Zapytał
  • @ Michał_Gwiazdonik | 29.04.2016
    • lider
    • laureat
    • 13
    • 9
    • 51

Odpowiedzi (2)

  • 2

Możliwości pewnie będzie kilka. Ja do eksportu kwerendy do Excela używam metody OutputTo obiektu DoCmd. Przykładowy kod poniżej:

DoCmd.OutputTo acOutputQuery, "NazwaKwereny", acFormatXLSX, , True

Jeżeli chcesz wysłać dane z tabeli do Excela, no to sprawa ma się trochę inaczej. Przejrzyj sobie przykład (wraz z załącznikiem) jaki zamieściłem w linku poniżej:

https://quorum.akademiq.pl/discussion/7363/problem-z-wyslaniem-danych-z-accessa-do-excela

Jeżeli później chcesz sobie te dane "poprzestawiać" to przeczytaj uważnie odpowiedzi do pytania:

Jeżeli chcesz sprawdzić, czy Excel jest już otwarty, to w przypadku jeżeli robisz to z poziomu VBA Excela, to proponuję taki kod:

Application.Workbooks.Count,

Jeżeli robisz to z poziomu VBA Accessa to.... hmm musiałbym poszukać rozwiązania.

UWAGA: jeżeli będziesz to robił z poziomu VBA Accessa, to koniecznie musisz mieć zainstalowane biblioteki odwołujące się do Excela.

 

Dariusz_Kępiński
  • Odpowiedział
  • @ Dariusz_Kępiński | 01.05.2016
    • 7
    • 3
    • 5
Komentarze
Dziękuję Dariusz, będę testował.
Skomentował : @ Michał_Gwiazdonik ,01.05.2016
  • 13
  • 9
  • 51
  • 2

Zrobiłem coś takiego:

DoCmd.TransferSpreadsheet acExport, 10, "NAZWA_KWERENDY", CurrentProject.Path & "\NAZAWA_PLIKU.xlsx", True i działa. :)

Michał_Gwiazdonik
  • Odpowiedział
  • @ Michał_Gwiazdonik | 02.05.2016
    • lider
    • laureat
    • 13
    • 9
    • 51
Komentarze
Jak działa tak jak chciałeś to dobrze. Zastanawiam się tylko, czy w miejscu "NAZWA_KWERENDY" nie podajesz nazwy tabeli. Wydaje mi się, że Transfer spreadsheet działa exportując z tabel Accessa (a nie działa na kwerendach).
Skomentował : @ Dariusz_Kępiński ,02.05.2016
  • 7
  • 3
  • 5
Działa zarówno do tabel jak i do kwerend. Tutaj pojawia się pytanie z innej beczki, a mianowicie wykonując kwerendy, których wynik wyeksportowywany jest np. do Excela, czy lepiej jest tworzyć kwerendy które aktualizują dane tabele czy po prostu trzymać wynik w kwerendzie. Mój aktualny program działa tak: Są dwie tabele. Jedna przetrzymuje wszystkie dane i druga tabela z danymi cząstkowymi dodawanymi np. co miesiąc. Po imporcie danych do tabeli nr 2 wykonuję serię kwerend sprawdzających różne scenariusze, których wynikiem jest jedna kwerenda eksportowana do Excela. Następnie wykonuję serię kwerend porównujących tabelę nr 1 z tabelą nr 2, których wynikiem jest ostatecznie druga kwerenda eksportowana do Excela.Na koniec tabelę nr 1 łączę z tabelą nr 2.
Skomentował : @ Michał_Gwiazdonik ,03.05.2016
  • 13
  • 9
  • 51