【问题标题】:Run time 3134 error MS Access SQL运行时 3134 错误 MS Access SQL
【发布时间】:2016-06-11 15:42:09
【问题描述】:
Private Sub AddItemButton_Click()
    Dim db As Database
    Set db = CurrentDb
    Dim Item As String
    Dim Rate As String
    Dim AltRate As String
    Dim Reason As String
    Dim ApporvedBy As String
    Dim Company As String
    Dim JobID As String

        Me.JobID2 = Me.JobID

        db.Execute "INSERT INTO InvItemsRecords (Item, Rate, AltRate, Reason, ApprovedBy, Company, JobID) VALUES ('" & Me.ItemAppendCBO & "', " & Me.RateAppend & ", " & Me.AltRateAppend & ", '" & Me.ReasonAppend & "', '" & Me.ApprovedByAppend & "', '" & Me.Customer & "', " & Me.JobID2 & ")"
        Me.AltRate2.Value = Null

End Sub

【问题讨论】:

  • 你有什么问题?请编辑您的问题并分享有关您的问题的更多详细信息。

标签: sql ms-access vba insert-into


【解决方案1】:

您应该在查询中使用字符串文字

Dim sqlQuery As String
    sqlQuery = "INSERT INTO InvItemsRecords (Item, Rate, AltRate, Reason, ApprovedBy, " & _
               "Company, JobID) VALUES ('" & Me.ItemAppendCBO & "', " & Me.RateAppend & ", " & Me.AltRateAppend & ", '" & Me.ReasonAppend & "', '" & _
               Me.ApprovedByAppend & "', '" & Me.Customer & "', " & Me.JobID2 & ")"

db.Execute sqlQuery

它使调试变得更加容易

INSERT INTO InvItemsRecords (Item, Rate, AltRate, Reason, ApprovedBy, Company, JobID) 
 VALUES('Some Item', 100, 343, 'Reason A', 'John', 'Jane Doe', Null)

您可能无意中将 1 个或多个空值传递给不可为空的字段。还要注意数据类型。您可能需要使用 CStr()、CInt()、CLong、CDate() 或 ... 将数据转换为正确的格式 如果字段可以留空,我们 NZ()。

NZ(Me.RateAppend, True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2014-01-12
    • 1970-01-01
    相关资源
    最近更新 更多