Habe ein Formular in dem ein Kombinationsfeld ist. Dort habe ich einige Zahlen abgespeichert. Nun aber kann es sein, dass gewisse Zahlen noch nicht vorhanden sind die ich brauche und die ich dann manuell eingeben soll. Nun kommt bei mir aber eine Meldung, dass das kein Element der Liste ist. Ich will dies aber ermöglichen, wie kann ich das tun?
diesen Code anpassen (Feld- und Tabellennamen) und in das Event „BeiNichtInListe“ des Kombinationsfelds einfügen:
'Tabelle_Straßen ergänzen
Response = acDataErrAdded 'keine Standardmeldung
Dim db As Database, rst As Recordset
If MsgBox(„Der Wert " & NewData & " ist in der Datenquelle nicht vorhanden. Wollen Sie ihn hinzufügen?“, vbQuestion + vbYesNo) = vbYes Then
Set db = CurrentDb
Set rst = db.OpenRecordset(„Tabelle_Straßen“, dbOpenDynaset)
rst.AddNew
rst!Straße = NewData ’ neuen Wert übernehmen
rst.Update
rst.Close
Set rst = Nothing
db.Close
End If
In den Eigenschaften des Kombinationsfelds „Nur Listeneinträge“ aktivieren.
Kannst du mir sagen wo ich genau was muss anpassen
'Tabelle_Straßen ergänzen
Was meinst du damit? Tab machen wo Tabelle_Strassen heisst?
Response = acDataErrAdded
Dim db As Database, rst As Recordset
Muss ich hier etwas ändern? Meine DB jammert hier nämlich schon!?
If MsgBox(„Der Wert " & NewData & " ist in der Datenquelle
nicht vorhanden. Wollen Sie ihn hinzufügen?“, vbQuestion +
vbYesNo) = vbYes Then
Set db = CurrentDb
Set rst = db.OpenRecordset(„Tabelle_Straßen“,
dbOpenDynaset)
rst.AddNew
rst!Straße = NewData ’ neuen Wert übernehmen
rst.Update
rst.Close
Set rst = Nothing
db.Close
End If
Kannst du mir sagen wo ich genau noch was anpassen muss? Welche Tabelle, welches Feld genau gemeint ist?
Was meinst du damit? Tab machen wo Tabelle_Strassen heisst?
Ich hatte angenommen, daß Dein Kombinationsfeld seine Werte aus einer Tabelle bezieht. Bei mir heißt die Tabelle „Tabelle_Straßen“.
Wenn Du eine Werteliste verwendest, geht das natürlich nicht so.
Set rst = db.OpenRecordset(„Tabelle_Straßen“,
In meiner Tabelle heißt der Feldname „Straße“.
rst!Straße = NewData ’ neuen Wert übernehmen
::Response = acDataErrAdded
:im db As Database, rst As Recordset
Muss ich hier etwas ändern? Meine DB jammert hier nämlich schon!?
Was sagt sie denn. Du verwendest Access2000? Ich Access97. Versuchs mal mit
Irgendwas stimmt immer noch nicht
Ja hab Access2000, hab es nun mal mit diesem versucht:
Dim db As DAO.Database, rst As DAO.Recordset
heisst aber, ich habe es noch nicht deklariert und weist mich auf die
erste Zeile des Codes.
Kannst mir villicht noch weiterhelfen?
Jetzt fählt mir noch ein Problem ein! Bei meinem Formular sieht es so aus, dass wenn ich im Kombifeld etwas auswähle, dass im nächsten Feld automatisch ein Wert erscheint der in der Tabelle im gleichen Datensatz liegt. Hoffe du weist was ich meine.
Nun könnte ich ja dann das gleiche in diesem Feld machen, nur sollte es dann im gleichen Datensatz gespeichert werden.