3

现在工作了一段时间,我收到运行时错误 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
4

1 回答 1

2

在帮助主题中,该OpenForm方法的WhereCondition选项是“一个字符串表达式,它是一个没有 WHERE 字样的有效 SQL WHERE 子句。

试试OpenForm这个方法...

DoCmd.OpenForm "Requests Processed", , , "[MRN] = '" & Answer & "'"

在我看来,这可能行得通。但是,您似乎可以对DLookup Criteria选项和OpenForm WhereCondition使用相同的字符串。如果这是真的,请创建一个字符串变量(例如strWhere)并在两个地方使用它。

于 2013-02-12T18:36:50.937 回答