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.

Access import z Excela - lista arkuszy

gattuzo 09 Lut 2018 16:43 321 8
  • #1 09 Lut 2018 16:43
    gattuzo
    Poziom 7  

    W skrócie: będę robił import do Accesa z Excela ale tylko wybranych arkuszy. Stąd konieczność ich pokazania (zapisu) w celu późniejszego wybrania przez użytkownika.
    Znalazłem taką procedurę która robi dokładnie to czego potrzebuję:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Problem w tym że otwiera mi ona plik xlsx w tle i nie zamyka po wczytaniu arkuszy co nie pozwala na późniejsze obejrzenie go w Excelu (tylko do odczytu).
    Ma ktoś rade jak to poprawić?
    Może jakaś inna metoda na zrobienie listy arkuszy z wybranego pliku?
    Pzdr.

    0 8
  • #2 09 Lut 2018 19:34
    adamas_nt
    Moderator Programowanie

    Skoro
    objExcel.Visible = False
    no to go nie widać.
    Siedzi sobie ukryty w procesach...

    0
  • #3 09 Lut 2018 19:42
    gattuzo
    Poziom 7  

    Dokładnie. Ale jak chcę go otworzyć żeby np. coś poprawić to nie mogę. Muszę zabić proces. A nie każdy wie jak to robić.

    0
  • #4 09 Lut 2018 19:51
    adamas_nt
    Moderator Programowanie

    Zmień na True.
    Wcześniej zerknij do procesów (Ctrl+Shift+Esc) i zamknij wszystkie Excel wcześniej utworzone.

    0
  • #5 09 Lut 2018 19:57
    gattuzo
    Poziom 7  

    Ale otwieranie Excela nie jest konieczne. Użytkownik nie musi go oglądać ale chcę mu zostawić taką możliwość w razie czego.

    0
  • #6 09 Lut 2018 20:07
    adamas_nt
    Moderator Programowanie

    Tak, czy tak go otwierasz...
    Możliwość podglądu, to zadeklarowanie zmiennej obiektowej 'objExcel' jako globalnej, i w dowolnym makrze polecenie objExcel.Visible = True
    Gdzieś go trzeba też ostatecznie "zabić" (objExcel.Quit), jeśli go nie odkryjesz. To też sprawa do przemyślenia.

    0
  • #7 09 Lut 2018 20:34
    gattuzo
    Poziom 7  

    objexcel.quit powoduje że pojawia się pytanie czy zapisać plik xls zupełnie niepotrzebnie. Nie da się jakoś inaczej zamknąć Excela tak by użytkownik tego nie zauważył.

    0
  • #8 09 Lut 2018 20:43
    adamas_nt
    Moderator Programowanie

    Po Bożemu powinno być tak. Najpierw zamknij plik:
    objWorkbook.Close Savchanges:=true/false (niepotrzebne skreślić)
    następnie
    objExcel.Ouit
    Set objExcel=Nothing

    Na skróty możesz:
    objExcel.Ouit, SaveChanges:= true/false
    Set objExcel=Nothing

    0
  • #9 09 Lut 2018 21:46
    gattuzo
    Poziom 7  

    Idealnie, o to chodziło. Wielkie dzięki.

    0