Neue Autowerte ermitteln und RecordsAffected

Mit der Autowert-Funktion liefert Access eine einfache Möglichkeit, eindeutige Werte für Primärschlüsselfelder zu vergeben. Für manche Zwecke benötigt man aber gleich nach dem Anlegen eines Datensatzes seinen Autowert. Wie diesen erhalten, erfahren Sie im vorliegenden Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1401_Autowerte.mdb.

ID des zuletzt hinzugefügten Autowertes ermitteln

Viele Anwendungsfälle verlangen danach, die ID eines gerade hinzugefügten Datensatzes zu ermitteln. Dies kann sowohl beim Hinzufügen per DAO (beziehungsweise ADO) also auch per SQL-INSERT INTO-Abfrage der Fall sein. Für beides gibt es Lösungen, die wir in diesem Artikel vorstellen. Als Beispieltabelle verwenden wir die Tabelle tblAutowerte (siehe Bild 1), die neben dem Autowert-Feld AutowertID nur noch ein weiteres Feld namens WeiteresFeld enthält.

Beispieltabelle

Bild 1: Beispieltabelle

Neuen Autowert unter DAO ermitteln

Unter DAO legen Sie neue Datensätze mit der AddNew-Methode an und fügt dann den einzelnen Feldern die gewünschten Werte hinzu. Wenn Sie anschließend den Autowert des neu angelegten Datensatzes benötigen, brauchen Sie diesen nur auszulesen – er ist beim Anlegen bereits vorhanden. Allerdings muss man dies vor dem Speichern des Datensatzes mit der Update-Methode erledigen.

Listing 1 zeigt, wie dies funktioniert. Hier legen wir zunächst mit der AddNew-Funktion einen neuen Datensatz an und weisen dem einzigen Nicht-Primärschlüsselfeld des Recordsets einen Wert zu.

Public Sub AutowertMitAddNewUpdate()
     Dim db As DAO.Database
     Dim rst As DAO.Recordset
     Set db = CurrentDb
     Set rst = db.OpenRecordset("tblAutowerte", dbOpenDynaset)
     rst.AddNew
     rst!WeiteresFeld = "Test"
     MsgBox "Die neue ID lautet: " & rst!AutowertID
     rst.Update
     rst.Close
     Set rst = Nothing
     Set db = Nothing
End Sub

Listing 1: Autowert per DAO ermitteln

Den Wert des Autowert-Feldes können Sie bereits nach dem Ausführen der AddNew-Methode abfragen – dies ist der früheste Zeitpunkt. Der späteste Zeitpunkt ist kurz vor dem Speichern des Datensatzes in der zugrunde liegenden Tabelle, also vor dem Aufrufen der Update-Methode.

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

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.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

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 →