数据不匹配错误3464

时间:2015-06-04 01:54:02

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

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

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

我一直在尝试使用这段代码,但它不断出现3464运行时错误,而de-bug突出显示了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

1 个答案:

答案 0 :(得分:2)

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

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