Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Me.Recordset.addnew => incrémentation Numauto + 2

3 réponses
Avatar
Tofalu
Bonjour à tous.

Je dispose d'un formulaire basé sur une table possédant un champ
autoincrémenté.

L'appel de la méthode Me.Recordset.AddNew sur ce formulaire provoque une
incrémentation de +2 du champ numauto.

D'un autre coté, la méthode DoCmd.GotoRecord gère bien une incrémentation
avec un pas de 1.

Y a t'il une solution pour contourner ce problème bien que cela ne soit pas
dramatique en soit puisqu'aucun enregistrement superflu n'est généré.


(j'ai essayé sur Access 2003 & 2007)

Merci beaucoup de votre réponse

3 réponses

Avatar
3stone
Salut,

"Tofalu"
| Je dispose d'un formulaire basé sur une table possédant un champ
| autoincrémenté.
|
| L'appel de la méthode Me.Recordset.AddNew sur ce formulaire provoque une
| incrémentation de +2 du champ numauto.


Si tu utilise un numeroauto, tu n'as pas à t'occuper de sa valeur !
Et je ne pense pas qu'il fasse +2 sauf si tu as du code qui "brule"
une incrémentation, ce qui ne m'étonnerais pas ;-)


| D'un autre coté, la méthode DoCmd.GotoRecord gère bien une incrémentation
| avec un pas de 1.

Un GotoRecord ne fait pas +1 !!!
Sauf, encore une fois, si du code inutile s'en mèle...

PS: Un numéroauto ne doit pas être manipulé, ni même apparaître
sur un formulaire! Il n'est pas destiné à cela.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Maxence Hubiche (MVP)
Bonjour,

En faisant un
Me.Recordset.AddNew

tu tentes une création d'enregistrement dans un code purement DAO.
Cependant, pour valider cette création, il faudrait un
Me.Recordset.Update

Sans cette ligne, la tentative de création n'est pas commitée.
Cependant, la valeur du NuméroAuto a été tentée.

il est donc normal que lorsque tu veux tenter une saisie dans le formulaire,
tu aies une incrémentation en +2

C'est reproduire via programmation les actions (et réactions) que tu obtiens
quand tu crées un enregistrement dans une table, mais, avant la sauvegarde,
tu annules.
La tentative de création a eu lieu, mais tu as fait un RollBack.
L'indice du NuméroAuto a changé.
quand tu crées un nouvel Enregistrement, tu fais aussi un +2

voilà ;)


PS : 3Stone, Tofalu connait suffisamment bien l'usage des NuméroAuto, je
pense, au vu des participations qu'il a par ailleurs ;)
Une simple réponse directe à la question eut été appréciée...
--
http://access.developpez.com
http://mhubiche.developpez.com



Salut,

"Tofalu"
| Je dispose d'un formulaire basé sur une table possédant un champ
| autoincrémenté.
|
| L'appel de la méthode Me.Recordset.AddNew sur ce formulaire provoque une
| incrémentation de +2 du champ numauto.


Si tu utilise un numeroauto, tu n'as pas à t'occuper de sa valeur !
Et je ne pense pas qu'il fasse +2 sauf si tu as du code qui "brule"
une incrémentation, ce qui ne m'étonnerais pas ;-)


| D'un autre coté, la méthode DoCmd.GotoRecord gère bien une incrémentation
| avec un pas de 1.

Un GotoRecord ne fait pas +1 !!!
Sauf, encore une fois, si du code inutile s'en mèle...

PS: Un numéroauto ne doit pas être manipulé, ni même apparaître
sur un formulaire! Il n'est pas destiné à cela.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/





Avatar
3stone
"Maxence Hubiche (MVP)"
| Une simple réponse directe à la question eut été appréciée...


A la niche Hubiche !
Tu réponds comme tu l'entends, moi aussi ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/