现在在这方面工作了一段时间,我收到运行时错误 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
最佳答案
在帮助主题中,OpenForm
方法的 WhereCondition 选项是“一个字符串表达式,它是不带 WHERE 一词的有效 SQL WHERE 子句。”
以这种方式尝试 OpenForm
...
DoCmd.OpenForm "Requests Processed", , , "[MRN] = '" & Answer & "'"
在我看来这可行。但是,您似乎可以对
DLookup
Criteria 选项和 OpenForm
WhereCondition 使用相同的字符串。如果这是真的,则创建一个字符串变量(例如 strWhere)并在两个地方使用它。关于ms-access-2003 - 访问 2003 : Checking to see if record exists BEFORE UPDATE and then display message THEN OPEN existing record,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14839160/