我对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
答案 0 :(得分:2)
3_Questionnaire 表中的 StudyPeriod 字段是一种数值数据类型(Long Integer)。因此,在构建 StLinkCriteria 字符串时,不要在 StudyPeriod 变量的值之前和之后包含引号:
'StLinkCriteria = "[StudyPeriod] = " & "'" & StudyPeriod & "'"
StLinkCriteria = "[StudyPeriod] = " & StudyPeriod
If Me.StudyPeriod = DLookup("[StudyPeriod]", "3_Questionnaire", StLinkCriteria) Then