ACCESS 2003:检查,看是否存在记录BEFORE UPDATE,然后显示消息,然后打开现有的记录
问题描述:
在这一段时间,现在的工作和我得到的运行时错误2501ACCESS 2003:检查,看是否存在记录BEFORE UPDATE,然后显示消息,然后打开现有的记录
我试图后拉了一项纪录。出现消息框,指出已找到重复项,并在单击“确定”后拉起记录。
我一直在修补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选项是 “字符串表达式,这是一个有效的SQL WHERE子句无字WHERE。”
尝试OpenForm
这样...
DoCmd.OpenForm "Requests Processed", , , "[MRN] = '" & Answer & "'"
它看起来像我可以工作。不过看起来你可以使用相同的字符串来处理你的DLookup
标准选项和你的OpenForm
WhereCondition。如果这是真的创建一个字符串变量(例如strWhere)并在两个地方使用它。
刚刚尝试过,逻辑上它应该可以运行,但遇到运行时错误2501:OpenForm操作被取消。 再次感谢您添加的任何指针。 – 2013-02-12 19:24:58
这种形式是否可以打开?如果您仅通过“DoCmd.OpenForm”请求处理“'而没有其他选项”,则表单可能已损坏。 – HansUp 2013-02-12 19:28:43
重新编码DoCmd.OpenForm“处理请求”没有选项打开窗体没有错误。表单的当前模式处于“创建新记录”状态。 – 2013-02-12 19:38:30