Ho una tabella JET con un numero automatico come chiave primaria e vorrei sapere come posso recuperare questo numero dopo aver inserito una riga. Ho pensato di usare MAX() per recuperare la riga con il valore più alto, ma non sono sicuro di quanto sarebbe affidabile. Alcuni esempi di codice:Valore autonumber dell'ultima riga inserita - MS Access/VBA
Dim query As String
Dim newRow As Integer
query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"
newRow = CurrentDb.Execute(query)
Ora so che questo non avrebbe funzionato, dal momento che Execute()
non restituirà il valore della chiave primaria, ma questo è fondamentalmente il tipo di codice che sto cercando. Dovrò utilizzare la chiave primaria della nuova riga per aggiornare un numero di righe in un'altra tabella.
Quale sarebbe il modo più semplice/più leggibile di farlo?
DAO può fare SELECT @@ IDENTITY, anche - non hai bisogno di ADO. Lo faccio sempre: lngID = db.OpenRecordset ("SELECT @@ IDENTITY") (0), dove "db" è la stessa variabile di database utilizzata per eseguire l'inserimento. Non apro più recordset e Aggiungi per questo. –