ACCESS 2003:在更新之前检查是否存在记录,然后显示消息然后打开现有记录

时间:2013-02-12 18:22:25

标签: ms-access-2003

现在处理这个问题一段时间,我得到运行时错误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

1 个答案:

答案 0 :(得分:2)

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

以这种方式试试OpenForm ......

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

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