2012-02-02 168 views
1

我不知道这是什么。显然它必须是某种类型的语法错误,但我无法弄清楚它对我的生活是什么。所有我做的是数据保存到SQL Server 2008中的表,我使用VBA在Microsoft Dynamics大平原2010年的具体线路是抛出一个错误VBA类型不匹配错误

rs("FREIGHT_RATE") = frmItemProfile.txtFreightRate 

,但它似乎变线,每当我做一个调整,所以这个方法在某处可能有问题。该错误消息仅说“类型不匹配”任何帮助都会很棒。

Public Sub SaveRecord(strItemNumber As String) 
Dim qry As String 
Set rs = New ADODB.Recordset 

'query table name 
    qry = "SELECT * FROM dbo.PCI_ITEM_PROFILE where ITEMNMBR = '" & strItemNumber & "'" 

'open recordset 
    rs.Open qry, strDSNPCI, adOpenStatic, adLockPessimistic 

     If rs.EOF <> True Then 
      'Time to Update Record 
       rs("RCD_KEY") = frmItemProfile.txtRCDKey 
       If frmItemProfile.txtCopyRightDate = "" Then 
        rs("COPYRIGHT_DATE") = #1/1/1900# 
       Else 
        rs("COPYRIGHT_DATE") = frmItemProfile.txtCopyRightDate 
       End If 
       rs("FIRST_CATALOG") = frmItemProfile.txtFirstCatalog 
       rs("CATEGORY") = frmItemProfile.txtCategory 
       rs("SERIES_CD") = frmItemProfile.txtSeriesCD 
       rs("PARENT_CD") = frmItemProfile.txtParentCD 
       rs("TYPE") = frmItemProfile.txtType 
       rs("COMMODITY_CD") = frmItemProfile.txtCommodityCD 
       rs("BARCODE_1") = frmItemProfile.txtBarCodeOne 
       rs("BARCODE_2") = frmItemProfile.txtBarCodeTwo 
       rs("BARCODE_3") = frmItemProfile.txtBarCodeThree 
       rs("BARCODE_4") = frmItemProfile.txtBarCodeFour 
       rs("CLASS_GROUP") = frmItemProfile.cmbClassGroup 
       rs("FREIGHT_RATE") = frmItemProfile.txtFreightRate 
       rs("ITEM_LENGTH") = frmItemProfile.txtItemLength 
       rs("ITEM_WIDTH") = frmItemProfile.txtItemWidth 
       rs("ITEM_HEIGHT") = frmItemProfile.txtItemHeight 
       rs("USER2ENT") = frmItemProfile.txtUserEnt 
       rs("CREATE_DATE") = frmItemProfile.txtCreateDate 
       rs("MODIFDT") = frmItemProfile.txtModifyDate 
       rs("IN_KIT") = frmItemProfile.txtInKit 
       rs("IN_BOM") = frmItemProfile.txtInBom 
       rs("REP_COMM_PCT") = frmItemProfile.txtRepPct 
       rs("REP_COMM_EXCEPT") = frmItemProfile.txtRepCommExcept 
       rs("ROYALTY_ITEM") = frmItemProfile.txtRoyaltyItem 
       rs("PPC_PAGES") = frmItemProfile.txtPPCPages 
       rs("PPC_PAPER") = frmItemProfile.txtPPCPaper 
       rs("PPC_TONERCURVE") = frmItemProfile.txtPPCTonerCurve 
       rs("PPC_COIL") = frmItemProfile.txtPPCCoil 
       rs("PPC_IMPRESSIONS") = frmItemProfile.txtPPCImpressions 
       rs("DROP_SHIP_ITEM") = frmItemProfile.txtDropShipItem 
       rs("OP_CD") = frmItemProfile.txtOPCD 
       If frmItemProfile.txtOPDate = "" Then 
        rs("OP_DATE") = #1/1/1900# 
       Else 
        rs("OP_DATE") = frmItemProfile.txtOPDate 
       End If 
       rs("NOTES") = frmItemProfile.txtNotes 
       rs.Update 
     End If 
    rs.Close 
    Set rs = Nothing 
End Sub 
+1

此消息表明frmItemProfile.txtFreightRate的值不允许用于MS-SQL FREIGHT_RATE类型,即???浮动???。通常调试代码并查看值是查看正在发生的最佳方式。 – 2012-02-02 19:15:13

+0

是的,它是一个浮动。浮动有问题吗? – javasocute 2012-02-02 19:16:14

+1

它只是通过所有类型的记录集和您试图传递给它们的类型的任务。尝试每次做一个,并测试每一个确切地看哪些是摔倒的 – Standage 2012-02-02 19:18:53

回答

0

这里是一个可能的摄制:

Dim rs 
Set rs = CreateObject("ADODB.Recordset") 

With rs 
    .Fields.Append "FREIGHT_RATE", adDouble, , 32 ' adFldIsNullable 
    .Open 
    .AddNew 
    rs("FREIGHT_RATE") = "fifty-five" 

End With 

的错误,我得到:产生

多步操作错误。检查每个状态值。