1

MS Access には、ID (自動番号) とシリアル番号 (テキスト) の 2 つのフィールドを持つテーブルがあります。シリアル番号には一意の値のみを含める必要があるため、インデックス付き: はい (重複なし) に設定しました。SerialNumber フィールドに 2 つの同じ値を入力しようとすると、標準的なエラー メッセージが表示されます。「シリアル番号は一意である必要があります!」のようなカスタム独自のメッセージをユーザーに表示する必要があります。そのメッセージを「検証テキスト」に追加しましたが、役に立たず、標準の Access エラー メッセージが引き続き表示されます。カスタムエラーメッセージを表示する方法を知っている人はいますか?

4

1 に答える 1

0

インデックス制約は、検証規則をオーバーライドします。

DLookup を使用して検証ルールを回避できる場合がありますが、データベースのパフォーマンスに深刻な影響を与えるため、使用しないことを強くお勧めします。

より適切なオプションは、VBA を使用してエラーをトラップし、独自のカスタム エラー メッセージを発行することです。

データベースのバックエンドとして MS-SQL を使用している場合に返されるエラー メッセージをカスタマイズすることもできます (それはあなたのようには聞こえません)。

Private Sub Form_Error(DataErr As Integer, Response As Integer)
  Select Case DataErr
    Case 3022 ' Duplicate Value Detected
      MsgBox "That Serial Number already Exists.", vbOkayOnly
      Response = acDataErrContinue
  End Select
End Sub

これにより、フォーム上のすべてのエラーがトラップされ、エラーが重複値であるかどうかが確認されます。存在する場合は、シリアル番号が既に存在することを通知するメッセージ ボックスがユーザーに表示されます。その後、通常どおり続行されます。

于 2013-09-10T16:28:06.700 に答える