0
我看了下面的问题,这正是我想要做的,但是发布的答案似乎不适用于我。我的查询基本上是一样的,但我会详细说明。防止Access 2013中的重复记录
我有更新的信息的表具有以下形式:
该数据库还增加了经由=日期()中的字段默认值设置自动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时显示消息。 –