【发布时间】:2012-02-25 11:09:21
【问题描述】:
我不知道这是什么。显然它必须是某种语法错误,但我无法弄清楚它对我的生活来说是什么!我所做的只是将数据保存到 SQL Server 2008 中的表中,并且我在 microsoft Dynamics Great Plains 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
【问题讨论】:
-
此消息表明frmItemProfile.txtFreightRate 的值对于MS-SQL FREIGHT_RATE 类型是不允许的,即???漂浮 ???。通常调试代码并查看值是了解发生了什么的最佳方式。
-
是的,它是一个浮点数。浮动有问题吗?
-
这只是检查记录集的所有类型以及您尝试传递给它们的类型的任务。尝试一次做一个并测试每一个,看看哪些是倒下的
-
它通常是运费列的正确类型,但如果您尝试将其设置为非数字值,则会出现错误。您可以尝试测试 IsNumeric(frmItemProfile.txtFreightRate) 并分配 0(或 Null,如果您愿意),看看是否能解决问题。
-
啊罗恩,就是这样。 Sheeesh 这么愚蠢的事情。创建一个答案,以便我接受它:)
标签: sql sql-server-2008 vba dynamics-gp