2014-08-21 1 views
0

У меня проблема как тема. Ошибка запуска 3708 и мой разрыв кода при добавлении строки параметров. Где я ошибаюсь? Стол в оракуле имеет только 4 столбца.Объект параметров VBA не определен. Непоследовательная или неполная информация была предоставлена ​​

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 

Благодарим за помощь!

ответ

3

При вызове CreateParameter необходимо указать параметр Size.

Следующая не вызывает ошибку 3708 для меня:

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

При создании параметра, убедитесь, что размер определен в SQL упоминается в .CreateParameter ("", adVarchar, , значение)

 Смежные вопросы

  • Нет связанных вопросов^_^