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