现在处理这个问题一段时间,我得到运行时错误2501
我正在尝试在消息框显示已找到重复项并且单击“确定”后拉出记录后拉出记录。
我一直在修补DoCmd.FindRecord,DoCmd.GoToRecord和DoCmd.OpenForm方法无济于事。
非常感谢任何帮助。
提前致谢。
Private Sub MRN_BeforeUpdate(Cancel As Integer)
Dim Answer As Variant
Answer = DLookup("[MRN]", "Requests Processed", "[MRN] = '" & Me.MRN & "'")
If Not IsNull(Answer) Then
MsgBox "Existing MRN found" & ": " & MRN.Text & vbCrLf & vbCrLf & "Please SEARCH and EDIT on EXISTING Record.", vbCritical + vbOKOnly + vbDefaultButton1, "EXISTING MRN FOUND"
Cancel = True
Me.MRN.Undo
Else:
End If
DoCmd.OpenForm "Requests Processed", , , Answer
End Sub
答案 0 :(得分:2)
在帮助主题中,OpenForm
方法的 WhereCondition 选项是“一个字符串表达式,它是一个有效的SQL WHERE子句,没有单词WHERE。”
以这种方式试试OpenForm
......
DoCmd.OpenForm "Requests Processed", , , "[MRN] = '" & Answer & "'"
在我看来这样可行。但是,您似乎可以对DLookup
条件选项和OpenForm
WhereCondition 使用相同的字符串。如果这是真的,那就创建一个字符串变量(例如 strWhere )并在两个地方使用它。