Hallo,
habe folgendes Prblem:
habe ein ufo "Teilnehmende" wo ich über ein Kombinationsfeld aus einer tbl Mitlgieder aussuchen kann, die an der Veranstaltung teilnehmen. diese werden in ein Listenfeld im Hauptformular "Veranstaltung" geschickt.
vor dem Speichern mit dem Button cmdSpeichern möchte ich prüfen ob der Teilnehmer bereits für die Veranstaltung eingetragen ist.
wie ist der vba-code in dem Teil Kriterien aufgebaut? was vergleiche ich miteinander?
Vielen Dank im Voraus!
Eve
Hallo,
ich nehme an, dass die zu einer Veranstaltung ausgewählten Teilnehmer in einer Tabelle gespeichert werden.
Die Einträge im Listenfeld sollten sich am Besten aus den Tabelleneinträgen zusammensetzen.
Wenn du nun einen Teilnehmer auswählst wird dieser bzw. dessen ID in die Tabelle der Teilnehmenden geschickt, also der Tabelle hinzugefügt, zusammen mit der ID der Veranstaltung, damit später auch eine Teilnehmerliste erstellt werden kann.
Wenn die Datenherkunft des Listenfeldes auf einer Abfrage beruht, die diese angesprochene Tabelle als Grundlage besitzt, wird die aktualisierte Teilnehmerliste mit...
Forms!DeinHauptformular.Requery angezeigt.
Wenn dann in der Tabelle über die Felder TeilnehmerID und VeranstaltungsID ein zusammengesetzter eindeutiger Index gelegt ist, kann es auch keine doppelten Einträge geben.
Ein Vergleich oder Datenabgleich ist in diesem Fall eigentlich nicht notwendig.
Dass ein etwaiger Fehler, der erzeugt wird wenn versucht wird einen Teilnehmer ein weiters Mal einzutragen, durch eine passende Fehlerbehandlung abgefangen werden sollte, versteht sich dabei von selbst
HTH
ok ok stimmt kurz gesagt ich muss einfach nur den Fremdschlüssel "mitglied_id_f" indizieren (ohne Duplikat)
hab ich gemacht.
Wenn ich jetzt das Formular öffne kann ich zwar keine Mitglieder nochmals auswählen (es kommt eine Zeilenlange Fehlermitteilung) aber die restlichen txtfelder wie "Jahrgang" und "Geschlecht" werden nicht mehr automatisch gefüllt (übernommen)!
>:(
Hallo,
diese lange Meldung bekommst Du weg mit
OnError goto Fehler
Dein Code
Ende:
Exit Sub
Fehler:
If Err = Meldungsnummer Then
msgbox("Teilnehmer doppelt ausgewählt")
else
MsgBox (Err & Err.Description)
end if
resume Ende
die Meldungsnummer steht am Anfang der langen Meldung.
Gruß
Johann