Parameter SQL per VBA ändern
22.01.2010 09:19:27
Marcus
Hallo,
ich habe folgende Frage an die Experten unter uns.
Das aufgezeichnete Makro zeigt den SQL Befehl für eine Abfrage einer Datenbank über Excel/MS Query.
Mein Ziel ist, den Parameter Lieferwoche in z.B. Zeile "(AuftraegePositionen.Lieferwoche='06')" über Excel per VBA-Texteingabefeld oder Zellinhalt automatisch zu ändern ohne MS Query öffnen zu müssen.
Also einen
Sub in der die Abfrage gestartet wird und ich den Parameter vorher einstellen kann.
Sub wocheändern()
' wocheändern Makro
With ActiveWorkbook.Connections("Verbindung4").ODBCConnection
.BackgroundQuery = True
.CommandText = Array( _
"SELECT AuftraegePositionen.Positionszaehler, AuftraegePositionen.Vorgangspreset, _
AuftraegePositionen.Vorgangsnummer" _
, _
", AuftraegePositionen.Positionstyp, AuftraegePositionen.Lieferwoche, _
AuftraegePositionen.Lieferdatum, AuftraegePosi" _
, _
"tionen.Artikelnummer, AuftraegePositionen.Bezeichnung1, AuftraegePositionen. _
Bezeichnung2, AuftraegePositionen.Menge" _
, _
", AuftraegePositionen.Anzahl, AuftraegePositionen.MengeGeliefert, AuftraegePositionen. _
MengeBerechnet, AuftraegePosi" _
, _
"tionen.Artikelgruppe, AuftraegePositionen.Erloescode, AuftraegePositionen. _
Mengeneinheit" & Chr(13) & "" & Chr(10) & "FROM AuftraegePositionen A" _
, _
"uftraegePositionen" & Chr(13) & "" & Chr(10) & "WHERE (AuftraegePositionen. _
Artikelnummer Like 'CY2%') AND (AuftraegePositionen.Lieferwoche='06'" _
, _
") AND (AuftraegePositionen.Vorgangspreset='A') AND (AuftraegePositionen.Bezeichnung1 _
Not Like 'CY7%') OR (Auftraege" _
, _
"Positionen.Artikelnummer Like 'CY9990%') AND (AuftraegePositionen.Lieferwoche='06') _
AND (AuftraegePositionen.Vorgan" _
, "gspreset='A') AND (AuftraegePositionen.Bezeichnung1 Not Like 'CY7%')")
.CommandType = xlCmdSql
.Connection = "ODBC;DSN=SageCL;UID=T05;;QueryLock=2;SERVER=NotTheServer"
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("Verbindung4")
.Name = "Verbindung4"
.Description = ""
End With
ActiveWorkbook.Connections("Verbindung4").Refresh
End Sub
Danke für Eure Hilfe
Marcus