OVH Cloud OVH Cloud

connaître ID après insertion

3 réponses
Avatar
Antoun
Bonjour,

J'ai une table dont la clé primaire est un numéro auto. J'ai un code VBA
qui y ajoute une ligne, comment puis-je connaître l'ID qui a été générée
? (à part SELECT MAX(ID) FROM TABLE) ?

Merci !

Antoun

3 réponses

Avatar
Raymond [mvp]
Bonjour.

un numéroauto est connu dès lors que tu exécutes une fonction AddNew d'un
recordset. tu peux le récupérer en le rappelant de ton recordset.
exemple:
Dim Db As Dao.Database
Dim Rs As Dao.Recordset
Dim strSql As String
strSql = "Select * from table3"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
Rs.AddNew
Rs.Fields("prenom") = "aaaa"
MsgBox Rs.Fields("cléautonum")
Rs.Update
Rs.Close
Set Rs = Nothing
Set Db = Nothing


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Antoun" a écrit dans le message de news:
428db86d$0$24227$
Bonjour,

J'ai une table dont la clé primaire est un numéro auto. J'ai un code VBA
qui y ajoute une ligne, comment puis-je connaître l'ID qui a été générée ?
(à part SELECT MAX(ID) FROM TABLE) ?

Merci !

Antoun


Avatar
Antoun
Raymond [mvp] wrote:

Bonjour.

un numéroauto est connu dès lors que tu exécutes une fonction AddNew d'un
recordset. tu peux le récupérer en le rappelant de ton recordset.
exemple:
Dim Db As Dao.Database
Dim Rs As Dao.Recordset
Dim strSql As String
strSql = "Select * from table3"
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(strSql)
Rs.AddNew
Rs.Fields("prenom") = "aaaa"
MsgBox Rs.Fields("cléautonum")
Rs.Update
Rs.Close
Set Rs = Nothing
Set Db = Nothing




en DAO ou ADO, OK. Mais si je fais juste un DoCmd.RunSQL "Insert ...",
je n'ai rien qui soit l'équivalent de, par exemple, le Last_insert_id de
MySQL ?

Avatar
Raymond [mvp]
Bonsoir.

le DMax sur le numauto te donnera le dernier, avec l'erreur possible
éventuelle s'il y a plusieurs saisies simultanées.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Antoun" a écrit dans le message de news:
428def1d$0$22978$

en DAO ou ADO, OK. Mais si je fais juste un DoCmd.RunSQL "Insert ...", je
n'ai rien qui soit l'équivalent de, par exemple, le Last_insert_id de
MySQL ?