Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA参数对象定义不正确。提供的信息不一致或不完整_Vba_Parameters_Adodb - Fatal编程技术网

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

VBA参数对象定义不正确。提供的信息不一致或不完整,vba,parameters,adodb,Vba,Parameters,Adodb,我有一个问题作为话题。在附加参数行上运行错误3708和我的代码中断。我哪里出错了?oracle中的表只有这4列 Sub Export(path As String) ... Set insertCmnd = New ADODB.Command With insertCmnd .ActiveConnection = cn .CommandType = adCmdText .Comma

我有一个问题作为话题。在附加参数行上运行错误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

谢谢你的帮助

调用
CreateParameter
时,必须指定
Size
参数

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

CreateParameter(name:=":IMIE;", Type:=adLongVarChar, Size:=1)

创建参数时,请确保.CreateParameter(“,adVarchar,10,值)中提到了SQL中定义的大小