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) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <antoun@free.fr> a écrit dans le message de news:
428db86d$0$24227$636a15ce@news.free.fr...
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) ?
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
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 ?
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 ?
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 ?
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 ?
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" <antoun@free.fr> a écrit dans le message de news:
428def1d$0$22978$636a15ce@news.free.fr...
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 ?
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 ?