padawan
25-02-10, 07:22
Hallo,
iServer V5R3 und VBA (dotnet)
Ich habe hier im Forum recherchiert und möchte über VBA eine Query auf der AS400 starten und gebe über VBA noch einen Parameter mit. Unten genannter Code wird per VBA (dotnet) ohne Fehlermeldung ausgeführt (der hinterlegten Query auf der AS400 wird ein Parameter VAR1 übergeben), doch die PF-Datei(Tabelle) wird nicht mit dem übergebenen Parameter überschrieben. Der abgesetzte CallCmd-Befehl funktioniert einwandfrei, wenn man ihn in der Befehlszeile der AS400 absetzt. Über VBA will das aber nicht funktionieren und die PF-Datei hat seinen alten Stand. Warum wird der Call nicht ausgeführt?
Vielen Dank für Eure Hilfe.
Dim cnn As ADODB.Connection
'Dim cmd As ADODB.Command
cnn = New ADODB.Connection
Dim CallCmd As String
cnn.Open("Provider=IBMDA400;" & _
"Data Source=AS400Server;" & _
"User ID=USER;" & _
"Password=PWD;")
CallCmd = "STRQMQRY QMQRY(TRUMPFH/TTRAJJLIP9) ALWQRYDFN(*YES) SETVAR((VAR1 0519617))"
cnn.Execute("CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")")
cnn.Close()
iServer V5R3 und VBA (dotnet)
Ich habe hier im Forum recherchiert und möchte über VBA eine Query auf der AS400 starten und gebe über VBA noch einen Parameter mit. Unten genannter Code wird per VBA (dotnet) ohne Fehlermeldung ausgeführt (der hinterlegten Query auf der AS400 wird ein Parameter VAR1 übergeben), doch die PF-Datei(Tabelle) wird nicht mit dem übergebenen Parameter überschrieben. Der abgesetzte CallCmd-Befehl funktioniert einwandfrei, wenn man ihn in der Befehlszeile der AS400 absetzt. Über VBA will das aber nicht funktionieren und die PF-Datei hat seinen alten Stand. Warum wird der Call nicht ausgeführt?
Vielen Dank für Eure Hilfe.
Dim cnn As ADODB.Connection
'Dim cmd As ADODB.Command
cnn = New ADODB.Connection
Dim CallCmd As String
cnn.Open("Provider=IBMDA400;" & _
"Data Source=AS400Server;" & _
"User ID=USER;" & _
"Password=PWD;")
CallCmd = "STRQMQRY QMQRY(TRUMPFH/TTRAJJLIP9) ALWQRYDFN(*YES) SETVAR((VAR1 0519617))"
cnn.Execute("CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")")
cnn.Close()