Microsoft Excel

Herbers Excel/VBA-Archiv

Parameter SQL per VBA ändern | Herbers Excel-Forum


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'
so
AuftraegePositionen.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"