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 Excel - Import danych do excela bez otwierania pliku źródłowego

slava101 26 Lis 2014 20:31 1836 1
  • #1 26 Lis 2014 20:31
    slava101
    Poziom 1  

    Witam,

    mam pytanie, czy jest możliwość w vba przygotowania kodu, który z jednego pliku xlsx (dla mnie bazy danych) zaimportuje wybrane dane do innego pliku xlsx, ale bez otwierania bazy danych, gdyż jest to zbyt czasochłonne. Obecnie używam kwerendy:

    Parametry połączenia:
    DSN=Excel Files;DBQ=C:\Users\Asus\Desktop\Dane szczegółówe.xlsx;DefaultDir= C:\Users\Asus\Desktop;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;

    Tekst polecenia:
    SELECT `'Raport 1$'`.`Data`, `'Raport 1$'`.`Nr Klienta`, `'Raport 1$'`.`Id produktu`, `'Raport 1$'`.`Liczba sztuk`
    FROM `'Raport 1$'` `'Raport 1$'`
    WHERE (`'Raport 1$'`.`Nr Klienta`=0001) OR (`'Raport 1$'`.`Nr Klienta`=0002) OR (`'Raport 1$'`.`Nr Klienta`=0003)

    Raport 1 - to nazwa arkusza w pliku

    ale jest ona o tyle niedogodna, że zmiana nr klienta wymusza korygowanie tego w kodzie SQL, a muszę to przygotować tak by plik był odporny na błędy (np skasowanie jakiegoś fragmentu SQL). Nr klientów można zmieniać w zależności od potrzeb (od nr 0001 do 0300), ale tym zajmę się sam, zależy mi na nieotwieraniu pliku źródłowego.

    Z góry dziękuję za pomoc.

    0 1
  • #2 27 Lis 2014 13:30
    marcinj12
    Poziom 40  

    Ja korzystam wtedy z ADO, tutaj taki uniwersalny fragment odwołania do samego siebie, można dostosować connection string do połączenia z jednym tylko plikiem. Wymagana referencja do biblioteki Microsoft ActiveX DataObjects 2.8 Library lub nowszej.

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Niestety, z tego co obserwuję, to jeżeli ktoś ma otwarty udostępniony na sieci plik-bazę, to plik jest otwierany w tle, ale dla mnie to mała niedogodność.

    1