PDA

Vollständige Version anzeigen : Doppelten Datensatz verhindern


TOKO
04.07.2001, 22:14
Hallo Leute,

ich habe in AC2K folgendes Problem:

In dem Formular 'Noten' habe ich ein Feld mit dem Namen 'Heftnummer'. Ich möchte nun jedes Mal, wenn ich die Heftnummer ändere, prüfen, ob schon ein Datensatz mit der gleichen Zahl vorhanden ist. Wenn ja, dann soll das Formular 'Notenduplikat' geöffnet werden, indem der andere gleiche Datensatz angezeigt wird.

Ich habe es schon einmal mit Dcount probiert. Da habe ich allerdings Schwierigkeiten mit dem Kriterium. Mein Code sieht so aus:

Public Sub Duplikat_prüfen(frm As Form)

Dim rst As DAO.Recordset
Dim Krit As String
Dim J As Integer

Set rst = CurrentDb.OpenRecordset("Noten Abfrage (gesamt)", dbOpenDynaset)

Krit = "[Heftnummer] =" & frm.[Heftnummer]
J = DCount("[Heftnummer]", "Noten Abfrage (gesamt)", Krit)

If J > 1 Then
rst.FindFirst "[Heftnummer] =" & frm.[Heftnummer]
If rst.NoMatch = False Then
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Notenduplikat"
stLinkCriteria = "[Heftnummer]=" & frm![Heftnummer]
DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
End If

End Sub


Wer kann mir weiterhelfen ?

Gruß

TOKO

Dan
05.07.2001, 08:51
Hallo,
wenn Du mit DCOUNT (hab ich auch keine Erfahrung mit gemacht) keinen Erfolg hast und nur feststellen willst, ob Dein Kriterium mehr als einmal vorhanden ist, dann versuchs doch mal mit "findfirst" und danach mit "findnext" mit dem selben Suchkriterium.
Anhand von "nomatch" kannst Du dann entscheiden, ob Du einen zweiten Treffer, ein Duplikat hast oder nicht.

Bye Dan,... hoffe geholfen zu haben :)

A.S.
05.07.2001, 10:47
Hallo Toko,

das einfachste ist es doch das Feld in der entsprechenden Tabelle entweder als PrimaryKey zu kennzeichnen oder die Eigenschaft "Indiziert" auf "Ja (ohne Duplikate)" zu setzen.

Damit sind doppelte Datensätze ja von vornherein ausgeschlossen.

Gruß

Arno