Hallo,
MS ACESS, ADO, WIN XP, V5R4

Call auf der AS400 funktioniert einwandfrei, aber

ich möchte in VBA ein Call mit Parameter übergeben, bekomme aber folgenden Fehler:

SQL0103: Numerische Konstante 1456459C ungültig

Code AS400 (funktioniert) - Parameter werden hexadezimal übergeben:

PGM PARM(&VAR1 &VAR2)
DCL VAR(&VAR1) TYPE(*DEC) LEN(7 0)
DCL VAR(&VAR2) TYPE(*DEC) LEN(4 0)
DCL VAR(&VAR1A) TYPE(*CHAR) LEN(7)
DCL VAR(&VAR2A) TYPE(*CHAR) LEN(4)
/* */
CHGVAR VAR(&VAR1A) VALUE(&VAR1)
CHGVAR VAR(&VAR2A) VALUE(&VAR2)
/* */
CLRPFM FILE(DTALIB/MVREKP)
/* MONMSG MSGID(CPF0000) */
ADDLIBLE LIB(DTALIB)
MONMSG MSGID(CPF0000)
CALL PGM(OBJLIB/MVREKLA1) PARM(&VAR1A &VAR2A)
MONMSG MSGID(CPF0000)
/*** */
ENDPGM: ENDPGM

VBA Code:

Dim VAR1, VAR11, VAR2, VAR22, CallCmd As String
VAR1 = "1456459"
VAR11 = "X'" & VAR1 & "C'"
VAR2 = "0101"
VAR22 = "X'0" & VAR2 & "C'"
'CallCmd = "CALL OBJLIB/TTREKLA1(" & VAR11 & ", " & VAR22 & ")"
CallCmd = "CALL PGM(OBJLIB/TTREKLA1) PARM(" & VAR11 & ", " & VAR22 & ")"
Dim cnn As New ADODB.Connection
Dim cmd As ADODB.Command
'Dim CallCmd As String
cnn = New ADODB.Connection
cnn.Open ("Provider=IBMDA400;" & _
"Data Source=ICHAS;" & _
"User ID=USERE;" & _
"Password=PW;")
'CallCmd = "CALL OBJLIB/TTREKLA1 PARM(VAR1 VAR2)"
'cnn.Execute ("CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")")
cnn.Execute ("CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")")

cnn.Close

Fehler tritt bei cnn.execute auf.

Danke.

Gruss
Tobias