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 źle "zaciąga" dane z Accessa

arlasek 24 Lip 2013 17:23 942 2
  • #1 24 Lip 2013 17:23
    arlasek
    Poziom 2  

    Witam!

    Mam problem, utworzyłem takie makro:

    Sub Makro2()
    '
    ' Makro2 Makro
    '

    Dim wartosc As Long
    wartosc = 1
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
    "ODBC;DSN=MS Access Database;DBQ=D:\Ariel Dokumenty\Auchan\Dane\Baza.accdb;DefaultDir=D:\Ariel Dokumenty\Auchan\Dane;DriverId=25;FIL=" _
    ), Array("MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:=Range( _
    "$A$1")).QueryTable
    .CommandText = Array( _
    "SELECT Eany.Pole1, Eany.Pole2" & Chr(13) & "" & Chr(10) & _
    "FROM `D:\Ariel Dokumenty\Auchan\Dane\Baza.accdb`.Eany Eany" & Chr(13) & "" & Chr(10) & "WHERE (Eany.Pole1= wartosc )" _
    )
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Tabela_Kwerenda_z_MS_Access_Database_1"
    .Refresh BackgroundQuery:=False
    End With
    End Sub

    Jego zadaniem jest wyciągnięcie danych z przykładowej tabeli. Jednak interesują mnie tylko nr. artykułów które zostaną zdefiniowane przez użytkownika. Za każdym razem jeśli numery te są podane jako zmienna "wartosc" makro zatrzymuje się w pozycji:

    .Refresh BackgroundQuery:=False

    I zwraca błąd ogólny ODBC, Run Time Error '1004'

    Jeśli zmienię "wartosc" na konkretną liczbę np. "1" w wierszu:

    "SELECT Eany.Pole1, Eany.Pole2" & Chr(13) & "" & Chr(10) & _
    "FROM `D:\Ariel Dokumenty\Auchan\Dane\Baza.accdb`.Eany Eany" & Chr(13) & "" & Chr(10) & "WHERE (Eany.Pole1= wartosc )" _
    )

    makro dział poprawinie.

    Jakieś pomysły?

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. Proszę to poprawić! - arnoldziq

    0 2
  • Pomocny post
    #2 25 Lip 2013 03:40
    PRL
    Poziom 33  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #3 25 Lip 2013 17:27
    arlasek
    Poziom 2  

    Temat zamknięty. Problem polegał na tym, że makro nagrywałem a nie wpisywałem komendy ręcznie. Należało uciąć połączenie z bazą danych access i tylko je "zaciągnąć". Opisana metoda nie pomogła też już o tym myślałem, pomógł mi spec z Excela w pracy. Dziękuję za pomoc.

    0