以下の質問を見てきましたが、投稿された回答は私にとってはうまくいかないようです。私の質問は本質的に同じですが、私は詳しく説明します。Access 2013での重複レコードの防止
Iは、以下との情報テーブルを更新する形態を有する:
データベースは、フィールドのデフォルト値の設定に=日付()を介して自動的にDateEntered加算し、ありますCPDEAIDと呼ばれる主キー自動番号。
フォームには、に次のコードを追加しました。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Set rst = Me.RecordsetClone
rst.FindFirst "[CPDEAID] <> " & Me.CPDEAID & " AND [Forename] = " & Me.Forename & " AND [Surname] = " & Me.Surname & " AND [EmailAddress] = " & Me.EmailAddress
If Not rst.NoMatch Then
Cancel = True
If MsgBox("This person already exists; would you like to go to the existing record?", vbYesNo) = vbYes Then
Me.Undo
DoCmd.SearchForRecord , , acFirst, "[CPDEAID] = " & rst("CPDEAID")
End If
End If
rst.Close
End Sub
ただし、これは機能しないようです。重複したレコードを作成しないようにデータベースを設定する唯一の方法は、複数列のインデックスを作成することですが、これはきれいなユーザーフレンドリーなフロントエンドがほしいから少し面倒です。
私はここで何か非常に単純なものがありますか?
Prevent Duplicate Records, Query Before Creating New Records
マルチカラムインデックスが何を意味しているのかわからないので、少し面倒で、 "ユーザーフレンドリー"なフロントエンドを作れませんか?ユーザーに見せたくないという警告がポップアップ表示されますか? – Slai
フィールドを主キーとして追加するか、複数列インデックスを設定します。重複が追加されようとしているときに生成されたエラー番号をトラップするか、「DCount」のように何個のレコードが存在するかを判断し、0より大きい場合はメッセージを表示します。 –