Neue Datensätze legen Sie entweder mit der Methode AddNew/Update oder mit der Execute-Methode unter Angabe einer INSERT INTO-SQL-Anweisung an. Dieser Beitrag zeigt, wie Sie auf die Autowerte der neuen Einträge zugreifen.
Bei AddNew/Update können Sie vor Ausführen der Update-Methode den Wert des Autowertfeldes ermitteln. Nach dem Update wird der Datensatzzeiger auf einen anderen Datensatz verschoben, der neue Datensatz ist dann nicht mehr greifbar (s. Listing 1).
Public Sub NeuerDatensatzI() Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("tblKategorien", dbOpenDynaset) rst.AddNew rst!Kategoriename = "Neue Kategorie" MsgBox rst!KategorieID rst.Update MsgBox rst!KategorieID End Sub
Listing 1: Ermitteln der ID eines neuen Datensatzes, Version I
Eine eher unbekannte Methode ist die, bei der die Bookmark-Eigenschaft auf den mit LastModified ermittelten zuletzt bearbeiteten Datensatz verschoben wird. Den Autowert liefert dann das entsprechende Feld (s. Listing 2).
Public Sub NeuerDatensatzII() Dim db As DAO.Database Dim rst As DAO.Recordset Dim lngKategorieID As Long Set db = CurrentDb Set rst = db.OpenRecordset("SELECT * FROM tblKategorien", dbOpenDynaset) rst.AddNew rst!Kategoriename = "Neue Kategorie 1" rst.Update rst.Bookmark = rst.LastModified MsgBox "Neuer Datensatz: " & rst!KategorieID End Sub
Listing 2: Ermitteln der ID eines neuen Datensatzes, Version II
Neue Datensätze legen Sie entweder mit der Methode AddNew/Update oder mit der Execute-Methode unter Angabe einer INSERT INTO-SQL-Anweisung an. Dieser Beitrag zeigt, wie Sie auf die Autowerte der neuen Einträge zugreifen.
Bei AddNew/Update können Sie vor Ausführen der Update-Methode den Wert des Autowertfeldes ermitteln. Nach dem Update wird der Datensatzzeiger auf einen anderen Datensatz verschoben, der neue Datensatz ist dann nicht mehr greifbar (s. Listing 1).
Public Sub NeuerDatensatzI() Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("tblKategorien", dbOpenDynaset) rst.AddNew rst!Kategoriename = "Neue Kategorie" MsgBox rst!KategorieID rst.Update MsgBox rst!KategorieID End Sub
Listing 1: Ermitteln der ID eines neuen Datensatzes, Version I
Eine eher unbekannte Methode ist die, bei der die Bookmark-Eigenschaft auf den mit LastModified ermittelten zuletzt bearbeiteten Datensatz verschoben wird. Den Autowert liefert dann das entsprechende Feld (s. Listing 2).
Public Sub NeuerDatensatzII() Dim db As DAO.Database Dim rst As DAO.Recordset Dim lngKategorieID As Long Set db = CurrentDb Set rst = db.OpenRecordset("SELECT * FROM tblKategorien", dbOpenDynaset) rst.AddNew rst!Kategoriename = "Neue Kategorie 1" rst.Update rst.Bookmark = rst.LastModified MsgBox "Neuer Datensatz: " & rst!KategorieID End Sub
Listing 2: Ermitteln der ID eines neuen Datensatzes, Version II
Unser exklusives Angebot für Dich!
(Gilt für den Abschluss eines Jahres-Abonnements im ersten Jahr, danach 189,-/Jahr)
Hier geht’s weiter →Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →