Tengo una tabla JET con un número automático como clave principal, y me gustaría saber cómo puedo recuperar este número después de insertar una fila. He pensado en usar MAX() para recuperar la fila con el valor más alto, pero no estoy seguro de cuán confiable sería. Un código de ejemplo:Autonumérico valor de la última fila insertada - MS Access/VBA
Dim query As String
Dim newRow As Integer
query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"
newRow = CurrentDb.Execute(query)
Ahora sé que esto no funcionaría, ya que Execute()
no devolverá el valor de la clave primaria, pero esto es básicamente el tipo de código que estoy buscando. Necesitaré usar la clave primaria de la nueva fila para actualizar varias filas en otra tabla.
¿Cuál sería la forma más simple/más legible de hacer esto?
DAO pueden hacer SELECT @@ IDENTITY, también - que no es necesario ADO. Hago esto todo el tiempo: lngID = db.OpenRecordset ("SELECT @@ IDENTITY") (0), donde "db" es la misma variable de base de datos que se utilizó para ejecutar la inserción. Ya no abro conjuntos de registros y agrego para esto. –