VBA 参数对象定义不正确。提供了不一致或不完整的信息

car*_*uzo 2 parameters vba adodb

我有一个问题作为主题。运行错误 3708 和我的代码在追加参数行中断。我哪里出错了?oracle中的表只有这4列。

    Sub Export(path As String)

...

        Set insertCmnd = New ADODB.Command
        With insertCmnd
            .ActiveConnection = cn
            .CommandType = adCmdText
            .CommandText = "INSERT INTO DEVCRM.COK_WE_REZYGNACJA_KO (IMI?, NAZWISKO, PESEL, NAZWISKO_RODOWE_MATKI) " _
                + "VALUES(:IMI?,:NAZWISKO,:PESEL,:NAZWISKO_RODOWE_MATKI)"
            .Prepared = True
        End With

        Set prmpNAME = insertCmnd.CreateParameter(name:=":IMI?", Type:=adLongVarChar)
        Set prmpSURNAME = insertCmnd.CreateParameter(name:=":NAZWISKO", Type:=adLongVarChar)
        Set prmpPESEL = insertCmnd.CreateParameter(name:=":PESEL", Type:=adLongVarChar)
        Set prmpNRM = insertCmnd.CreateParameter(name:=":NAZWISKO_RODOWE_MATKI", Type:=adLongVarChar)

        With insertCmnd.Parameters
            .Append prmpNAME **here is a break**
            .Append prmpSURNAME
            .Append prmpPESEL
            .Append prmpNRM
        End With

        cn.BeginTrans
        Do Until excelRecords.EOF

            prmpNAME.Value = excelRecords.Fields("IMI?").Value
            prmpSURNAME.Value = excelRecords.Fields("NAZWISKO").Value
            prmpPESEL.Value = excelRecords.Fields("PESEL").Value
            prmpNRM.Value = excelRecords.Fields("NAZWISKO_RODOWE_MATKI").Value

            insertCmnd.Execute

            excelRecords.MoveNext
        Loop
        cn.CommitTrans
        cn.Close
    End Sub
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

geb*_*ebi 6

Size调用时必须指定参数CreateParameter

以下不会对我造成错误 3708:

CreateParameter(name:=":IMIE;", Type:=adLongVarChar, Size:=1)
Run Code Online (Sandbox Code Playgroud)