【问题标题】:Run-Time Error '13' Type Mismatch - ACCESS DATABASE运行时错误“13”类型不匹配 - 访问数据库
【发布时间】:2021-04-03 18:49:31
【问题描述】:

我正在尝试将两个文本字段 txtTrailerNumber 和 txtSealNumber 与数据库表 Tab_TrailerDetails 进行比较。表中列出的 [TrailerNumber] 和 [SealNumber]。

我试图让数据库查看表格中输入的预告片编号,如果发现重复值,则查看表格中输入的封条号。如果在表中发现两个值重复,则应该抛出 Msg_Box 错误代码。

Private Sub txtSealNumber_AfterUpdate()

Dim NewTrailer, NewSeal As String
Dim stLinkCriteria As String


'Assign the entered Trailer Number and Seal Number to a variable
NewTrailer = Me.txtTrailerNumber.Value
NewSeal = Me.txtSealNumber.Value

stLinkCriteria = ("[TrailerNumber]='" & NewTrailer & "'" And "[SealNumber]='" & NewSeal & "'")

If Me.txtTrailerNumber = DLookup("[TrailerNumber]", "Tab_TrailerDetails", stLinkCriteria) Then

   MsgBox "This trailer, " & NewTrailer & ", has already been entered in database," _
              & vbCr & vbCr & "along with seal " & NewSeal & "" _
              & vbCr & vbCr & "Please make sure Trailer and Seal are not already entered.", vbInformation, "Duplicate information"
     
'undo the process and clear all fields
    Me.Undo
    

End If

End Sub

【问题讨论】:

  • 运行时错误 - 13 不匹配是我在表单中输入信息时弹出的错误。即使信息在数据库中根本没有匹配项。
  • 在以 NewTrailer = 开头的行打断,然后单步执行一行,并告诉我们错误发生在哪一行。

标签: sql vba ms-access


【解决方案1】:

错误的原因是您有一个逻辑关键字,特别是字符串表达式中的AND。将您的代码更改为

stLinkCriteria = ("[TrailerNumber]='" & NewTrailer & "' And [SealNumber]='" & NewSeal & "'")

【讨论】:

  • 太棒了!非常感谢,它工作得很好.. 你不知道我盯着这段代码看了多久,并尝试了不同的方法来让它工作。!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多