【问题标题】:Data mismatch error 3464数据不匹配错误 3464
【发布时间】:2015-06-04 01:54:01
【问题描述】:

我对 VBA 很陌生,所以我什至不确定我是否朝着正确的方向前进。 我正在使用 Access 2010,我创建了一个表单,您可以在其中搜索 ID,然后单击为多个时间点添加新记录(例如时间点 1、2、3、4 的后续表单)。

我有一个 StudyPeriod 字段(长整数),您可以从列表中选择(通过查询编号 + 文本)。如果该时间段已经输入,我希望出现一个错误框。

我一直在尝试使用此代码,但它不断出现 3464 运行时错误,并且调试会突出显示 If Me。线。

我做错了什么?

Private Sub StudyPeriod_AfterUpdate()
    Dim StudyPeriod As String
    Dim StLinkCriteria As String

    StudyPeriod = Me.StudyPeriod.Value
    StLinkCriteria = "[StudyPeriod] = " & "'" & StudyPeriod & "'"
    ' If line below returns error
    If Me.StudyPeriod = DLookup("[StudyPeriod]", "3_Questionnaire", StLinkCriteria) Then
        MsgBox "This questionnaire has already been entered for this participant." _
            & vbCr & vbCr & "Please check RegID or Summary table.", vbInformation, _
            "Duplicate information"
        Me.Undo
    End If
End Sub

【问题讨论】:

  • MsgBox DLookup("[StudyPeriod]", "3_Questionnaire", StLinkCriteria) 看看你在这里得到了什么。

标签: ms-access vba ms-access-2010 type-mismatch


【解决方案1】:

3_Questionnaire 表中的 StudyPeriod 字段是数值数据类型(长整型)。因此,当您构建 StLinkCriteria 字符串时,不要在 StudyPeriod 变量的值之前和之后包含引号:

'StLinkCriteria = "[StudyPeriod] = " & "'" & StudyPeriod & "'"
StLinkCriteria = "[StudyPeriod] = " & StudyPeriod
If Me.StudyPeriod = DLookup("[StudyPeriod]", "3_Questionnaire", StLinkCriteria) Then

【讨论】:

  • @Tash 不要忘记接受它作为答案,以便将来的用户能够找到它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多