Wpis z mikrobloga

Mirki mam problem, wyciągam dane z MS QUERY do excela z pliku .xls za pomocą VBA.
Tylko jak podłączyć komórkę jako kryteria? Próbowałem zamienić na Range("a1") lub Cell(1,1) ale niestety sypie błędem

Sub Makro3()

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=C:\Users\M\Desktop\dane.xlsx;DefaultDir=C:\Users\M\Desktop;DriverId=1046;MaxBufferSize=2048;Pag" _
), Array("eTimeout=5;")), Destination:=Range("$F$7")).QueryTable

.CommandText = Array( _
"SELECT
Dane$.Art#, Dane$.Dane" & Chr(13) & "" & _
Chr(10) & "FROM
C:\Users\M\Desktop\dane.xlsx.Dane$Dane$" & Chr(13) & "" & Chr(10) & _
"WHERE (
Dane$.Art#=1)" _
)
.RowNumbers = False

.Refresh BackgroundQuery:=False
End With
Range("E17").Select
End Sub

Chciałbym Art#'=1 przypisać komórkę A1

#excel #vba #sql #programowanie
Pobierz
źródło: comment_Mo4bIZtNnZq9S9orFQN2tzcStC01jFEe.jpg
  • 7
@madspirit: Tak pojawia się "Błąd składni SQL"
Równie dobrze może być jako zmienna a do zmiennej mogę sobie przypisać komórkę. Tylko nie wiem jak to w kodzie wpisać i nie znalazłem informacji w internetach.
@07Temp: chyba, że ma to być parametr, wówczas w zaytaniu zamiast "1" powinien być "?", a potem trzeba użyć metody Parameters.AddParam podając nazwę i typ zmiennej, a nastęnie dla utworzonego parametru użyć metody SetParam z pierwszym argumentem xlRange
"WHERE (Dane$.Art#=" & Range("a1").Value2 & ")"


@brak_nicku: Niestety przy tej zmianie pokazuje także "Błąd składni SQL

"Parameters.AddParam" - wydaje się dość skomplikowany, ale teraz wiem bardziej jak szukać rozwiązania problemu.