Ich habe eine JET-Tabelle mit einer Auto-Nummer als Primärschlüssel, und ich würde gerne wissen, wie ich diese Nummer nach Einfügen eine Zeile abrufen kann. Ich habe daran gedacht, MAX() zu verwenden, um die Zeile mit dem höchsten Wert abzurufen, bin mir aber nicht sicher, wie zuverlässig das sein würde. Einiger Beispielcode:Autowert der zuletzt eingefügte Zeile - MS Access/VBA
Dim query As String
Dim newRow As Integer
query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"
newRow = CurrentDb.Execute(query)
Jetzt weiß ich, dass dies nicht funktionieren würde, da Execute()
nicht den Wert des Primärschlüssels zurück, aber das ist im Grunde die Art von Code die ich suche. Ich muss den Primärschlüssel der neuen Zeile verwenden, um eine Anzahl von Zeilen in einer anderen Tabelle zu aktualisieren.
Was die einfachste/lesbarsten Weise sein würde, dies zu tun?
DAO können Sie SELECT @@ IDENTITY auch - Sie müssen nicht ADO benötigen. Ich mache das die ganze Zeit: lngID = db.OpenRecordset ("SELECT @@ IDENTITY") (0), wobei "db" dieselbe Datenbankvariable ist, die zum Ausführen der Einfügung verwendet wurde. Ich öffne keine Recordsets mehr und füge das hinzu. –