Access2000 Kombinationsfeld - Eintrag hinzufügen bei nicht in der Liste
Hallo!
Ich möchte ein Kombinationsfeld erstellen, das Werte aus einer Liste enthält und bei nicht vorhandensein automatisch der Liste zufügt. Habe mit Hilfe von Supportnet auch schon ein passenden Code gefunden. Will aber einfach nicht funktionieren.
Meine Tabelle heißt "tbl_Ablage". Das Feld, in das die Werte gespeichert werden sollen lautet "Kategorie", Die Werte die nicht in der Liste sind sollen gleichzeitig in die Liste aufgenommen werden und in das Feld "Kategorie " gespeichert werden. Der Code lautet:
Sub Kombinationsfeld26_NotInList(NewData As String, Response As Integer)
Response = acDataErrAdded
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset ("Tabellenname", DB_OPEN_DYNASET)
rs.AddNew
rs!Feldname = NewData
rs.Update
rs.Close: Set rs = Nothing
db.Close
End Sub
1.Ich bin mir nicht sicher was ich Bei Feldname und Tabellenname einsetzen muß, da ja die Werte aus einer Liste stammen.
2.Wenn ich das Programm ausprobiere und einen Wert ins Kombi_Feld eingeben möchte, springt mir jedes mal der Code auf und markiert mir die 1. Zeile als Fehler (Sub Kombinationsfeld26_NotInList(NewData As String, Response As Integer). Diese Zeile springt in meinem Code-Fenster doch automatisch auf, sobald ich bei "nicht in der Liste "den code-Generator einschalte. Was mach ich falsch?
Gleichzeitig wird mir folgende Zeil Blau markiert: "db As Database".
Übrigens: " Nur Listeneinträge" ist auf ja gesetzt und ich habe das ganze auch schon mit einem Kombinationsfeld, dass sich die Werte aus einer Tabelle holt versucht.
Es passiert genau das selbe.
Brauche dringend Hilfe?
Gruß Maggi
Antwort schreiben
Antwort 1 von RalfH vom 06.03.2019, 10:17 Options
HAllo Maggi,
Kategorie ist Grundsätzlich eine Entität und diese sollten bei relationalen Datenbanken immer eine eigene Tabelle bekommen.
Siehe hier.
Und
hier, Unter Formulare-Kombinationsfeld
Gruß Ralf
Antwort 2 von Teddy7 vom 06.03.2019, 12:34 Options
Da müßte auch noch eine Fehlermeldung ausgegeben werden. Die wird wahrscheinlich besagen, dass Du keinen Verweis gesetzt hast.
Wie auch immer - mein Rat wäre der, das ghanze wegzuschmeissen. Mach statt dessen eine Abfrage über dieses Feld in Deiner Tabelle und gruppiere die Abfrage (so hast Du jeden Inhalt nur einmal).
Nimm diese Abfrage als Datenquelle für Dein Kombifeld und stell "nur Listeneinträge" auf nein.
Wenn Du jetzt etwas neues in dieses Feld einträgst, dann steht Dir das beim nächsten Aufruf des Formulars automatisch zur Verfügung.
Gruß
Teddy
P.S. Not in List verwendet man nur, wenn man den neuen Eintrag prüfen will bevpr er in einer anderen Tabelle hinzugefügt wird (Nix für Anfänger !!)