J'ai une table JET avec un numéro automatique comme clé primaire, et je voudrais savoir comment je peux récupérer ce numéro après avoir inséré une ligne. J'ai pensé à utiliser MAX() pour récupérer la ligne avec la valeur la plus élevée, mais je ne suis pas sûr de la fiabilité de cette ligne. Quelques exemples de code:Valeur de numérotation automatique de la dernière ligne insérée - MS Access/VBA
Dim query As String
Dim newRow As Integer
query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"
newRow = CurrentDb.Execute(query)
Maintenant, je sais que cela ne fonctionne pas, puisque Execute()
ne reviendra pas la valeur de la clé primaire, mais cela est essentiellement le genre de code que je cherche. Je vais devoir utiliser la clé primaire de la nouvelle ligne pour mettre à jour un nombre de lignes dans une autre table.
Quelle serait la manière la plus simple/la plus lisible de le faire?
peut OAC ne SELECT @@ IDENTITY, trop - vous n'avez pas besoin ADO. Je le fais tout le temps: lngID = db.OpenRecordset ("SELECT @@ IDENTITY") (0), où "db" est la même variable de base de données qui a été utilisée pour exécuter l'insertion. Je n'ouvre plus les recordsets et ajoute pour cela. –