#258 | データ更新前にキーの重複をチェックする方法(その2) | フォーム、VBA | |
主キーや重複なしのインデックスの設定されたフィールドに対して、他のレコードと重複する値を入力すると、次のようなAccess固有のメッセージが表示されます。 このAccessが自動的に発してくる、親切なようで意味不明なメッセージの代わりに、オリジナルのメッセージを表示する方法については「#161 データ更新前にキーの重複をチェックする方法」で説明しています。 ここではその補足として、新規レコードではなく既存のレコードに対して、たまたますでに入力されているのと同じ値を同じ欄に再入力した場合にはオリジナルメッセージを表示しないようにする方法を紹介します。 ポイントは、テキストボックスの「OldValue」プロパティ値を調べて、もし再入力された値がそれと同じであれば、重複をチェックしないようにするという点です。「OldValue」プロパティを調べることによって、更新前の値を取得することができます。 Private Sub 顧客コード_BeforeUpdate(Cancel As Integer)
With Me!顧客コード If IsNull(.OldValue) Or (.Value <> .OldValue) Then If DCount("顧客コード", "tbl顧客マスタ", "顧客コード=" & .Value) > 0 Then Beep MsgBox "入力された顧客コードはすでに使われています!" & _ vbCrLf & _ "他の値を再入力してください。", vbOKOnly + vbExclamation Cancel = True End If End If End With End Sub |
|||
|
Copyright © T'sWare All rights reserved |