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

slava101 26 Lis 2014 20:31 3447 1
REKLAMA
  • #1 14168229
    slava101
    Poziom 1  
    Posty: 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.
  • REKLAMA
  • #2 14169980
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    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: text
    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ść.
REKLAMA