3

しばらくこれに取り組んでいますが、ランタイム エラー 2501 が発生します。

重複が見つかったことを示すメッセージ ボックスが表示され、[OK] をクリックするとレコードがプルアップされた後、レコードをプルアップしようとしています。

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の両方に同じ文字列を使用できるようです。その場合は、1 つの文字列変数 (たとえばstrWhere ) を作成し、両方の場所で使用します。

于 2013-02-12T18:36:50.937 に答える