Betrifft: Parameter SQL per VBA ändern
von: Marcus
Geschrieben am: 22.01.2010 09:19:27
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
Betrifft: AW: Parameter SQL per VBA ändern von: Tino
Geschrieben am: 22.01.2010 10:01:06
Hallo,
da dies ein String ist, müsste es so gehen.
Ersetze z. Bsp.AuftraegePositionen.Lieferwoche='06'soAuftraegePositionen.Lieferwoche='" & Range("A1").Text & "'Range("A1") ist die Zelle wo z. Bsp. 06 drin steht,
ich gehe davon aus das in der Zelle auch 06 angezeigt wird.
Gruß Tino
Betrifft: AW: Parameter SQL per VBA ändern von: Marcus
Geschrieben am: 22.01.2010 10:18:33
Hallo Tino,
vielen Dank, so hatte ich es auch schon, nur ich habe die Gänsefüßchen vergessen.
Danke
Marcus
Beiträge aus den Excel-Beispielen zum Thema "Parameter SQL per VBA ändern"