PDA

Vollständige Version anzeigen : doppelte Datensatzeinträge verhindern


ManniB
31.10.2001, 11:29
Hallo Jungs,

ich hab da folgendes Problem.
Ich hab eine Tabelle EventM.
Nun möchte ich, vor dem abspeichern folgende Felder (MNr und EventNr vom Formular) überprüfen, ob diese in der Tabelle EventM schon vorhanden sind(um doppelte Datensätze zu vermeiden).

Vielen Dank im voraus

ManniB

Stema
31.10.2001, 12:03
Hallo Manni,

da kannst Du in die Entwurfsansicht Deiner Tabelle gehen und die Eigenschaft "indiziert" auf "ja", "keine doppelten Einträge" für die entsprechenden Felder setzen.

Ironpants
31.10.2001, 12:08
oder Du benutzt die Funktion DLookup...

MfG,
Ironpants

ManniB
31.10.2001, 12:14
Hallo Stema,

das Problem ist, das EventM und EventNr eindeutig sein sollen.
Aber EventM zu einer anderen EventNr möglich sein soll.

Also zu einem Event gibt es mehrere Mitglieder.

Ein bestimmtes Mitglied gibt es zu mehreren Events.

Danke

ManniB

Stema
31.10.2001, 12:17
OK, dann kannst Du Dir aus EventM und EventNr einen gemeinsamen Primärschlüssel zusammenstellen.

ManniB
31.10.2001, 12:42
Hallo Stema,

ich soll das ganze über einen VBA-Code abgreifen und an der Tabelle nichts verändern.
Ich weiß aber den Code nicht und im Forum hab ich bisher auch noch nicht den passenden Code gefunden.

Gruss

ManniB

Stema
31.10.2001, 17:06
Ok, dann:
Dim R as Recordset
Dim varMNr as Integer
Dim varEventNr as Integer

varMNr = 45
varEventNr = 88

Set R = CurrentDb.OpenRecordset("SELECT * FROM EventM WHERE MNr = " & varMNr & " AND EventNr = " & varEventNr)

If R.EOF then msgbox "Eintrag noch nicht vorhanden!"

ManniB
08.11.2001, 13:19
Hallo Leute,
ich hab das Problem lösen können.

Hier der Quäll-Code:

Private Sub Hinzufügen_Click()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Q As QueryDef
Dim EintragNrAs String
Dim EvNr As String

EintragNr= Me.Args
EvNr = Me.Nr
If Err <> 0 Then Exit Sub 'Feld ist leer

On Error GoTo 0

Set db = CurrentDb() 'XY.mdb
Set Q = db.QueryDefs("Abfrage")

Q.Parameters("Welcher Eintrag") = EintragNr
Q.Parameters("Welche Nr") = EvNr
Set rs = Q.OpenRecordset

If Q.OpenRecordset.AbsolutePosition = -1 Then

rs.AddNew
rs("EintragNr") = Me.Args
rs("Nr") = Me.Nr
rs.Update

'aktuallisiert das Formular [Forms]![XY].Refresh

Else

MsgBox "XYfür diesen Eintrag bereits eingetragen!!", _
vbYesCancel + vbQuestion, "neues XY hinzufügen??"

End If


Exit_MitgliedHinzu_Click:
Exit Sub

Err_MitgliedHinzu_Click:
MsgBox Err.Description
Resume Exit_MitgliedHinzu_Click

End Sub

rolo
08.11.2001, 19:17
Hallo,
ich brüte gerade an einem ähnlichen Problem ... Kann man auf diese Weise auch ein Formular direkt mit den vorhandenen Daten füllen, wenn ein bereits bekannter Wert ins Primärschlüsselfeld eingetragen wird?
P.S bin nicht nur hier neu ...