아래 질문을 보았습니다. 게시 된 답변이 저에게 맞지 않는 것처럼 보입니다. 내 쿼리는 본질적으로 동일하지만 정교하게 다룰 것입니다.Access 2012에서 중복 레코드 방지
나는 다음과 같이 정보의 테이블을 갱신하는 형태가 있습니다
이Forename
Surname
EmailAddress
또한 필드의 기본값 설정에서 = 날짜()를 통해 자동으로 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보다 큰 경우 메시지를 표시하십시오. –