La question a sûrement déjà été traitée, mais je ne trouve pas .
J'ai une table "Membres" avec comme clef primaire un champs "No" de type
numéroauto, a cette table est lié un formulaire a partir duquel on peut
entrer un nouveau membre. Mon problème vas comme suit.
Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il
clique sur le bouton Annuler qui active
"Me.Undo
"DoCmd.Close
le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c
est ce que je voudrais empêcher
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
Mario Limoges
Et bien, merci 3stone, c'est donc dire que j'ai mis beaucoups d'énergies et de temps a me battre contre le vent :-((
Je vais évaluer la fonction de domaine "DMax" comme suggéré .... a l'attaque! ;-)
"3stone" a écrit dans le message de news:3f900614$0$281$
Salut,
|| Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il
| clique sur le bouton Annuler qui active | "Me.Undo | "DoCmd.Close | le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c
| est ce que je voudrais empêcher
Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des enregistrements.
Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la fonction de domaine "DMax"
Voir l'aide à ce sujet.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Et bien, merci 3stone, c'est donc dire que j'ai mis beaucoups d'énergies et
de temps a me battre contre le vent :-((
Je vais évaluer la fonction de domaine "DMax" comme suggéré .... a
l'attaque! ;-)
"3stone" <3stone@skynet.be> a écrit dans le message de
news:3f900614$0$281$ba620e4c@reader3.news.skynet.be...
Salut,
|| Lorsque l'utilisateur active ce formulaire et que sans entrer de
données, il
| clique sur le bouton Annuler qui active
| "Me.Undo
| "DoCmd.Close
| le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et
c
| est ce que je voudrais empêcher
Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des
enregistrements.
Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la
fonction de domaine "DMax"
Voir l'aide à ce sujet.
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Et bien, merci 3stone, c'est donc dire que j'ai mis beaucoups d'énergies et de temps a me battre contre le vent :-((
Je vais évaluer la fonction de domaine "DMax" comme suggéré .... a l'attaque! ;-)
"3stone" a écrit dans le message de news:3f900614$0$281$
Salut,
|| Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il
| clique sur le bouton Annuler qui active | "Me.Undo | "DoCmd.Close | le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c
| est ce que je voudrais empêcher
Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des enregistrements.
Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la fonction de domaine "DMax"
Voir l'aide à ce sujet.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
3stone
Salut,
|| Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il | clique sur le bouton Annuler qui active | "Me.Undo | "DoCmd.Close | le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c | est ce que je voudrais empêcher
Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des enregistrements. Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la fonction de domaine "DMax"
Voir l'aide à ce sujet.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Salut,
|| Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il
| clique sur le bouton Annuler qui active
| "Me.Undo
| "DoCmd.Close
| le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c
| est ce que je voudrais empêcher
Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des enregistrements.
Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la fonction de domaine "DMax"
Voir l'aide à ce sujet.
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
|| Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il | clique sur le bouton Annuler qui active | "Me.Undo | "DoCmd.Close | le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c | est ce que je voudrais empêcher
Tu ne peut pas l'empêcher, c'est voulu.
Un numéroauto en clé primaire, n'est là que pour garantir l'unicité des enregistrements. Et, dans ce cas, il ne devrait même pas être "vu" par l'utilisateur.
S'il te faut absolument une numérotation continue, utilise plutôt la fonction de domaine "DMax"
Voir l'aide à ce sujet.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Jeff
Bonjour
Voici une fonction qui pourrait te mettre sur la piste...
Function NumeroRecu ()
Dim db As DAO.Database, mj As DAO.Recordset
Set db = CurrentDB() Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]") If mj.RecordCount > 0 Then mj.MoveLast NumeroRecu = mj![Numero] + 1 Else NumeroRecu = 1 End If mj.Close db.Close
End Function
<--- Une autre version --->
Function NumeroRecu ()
Dim db As DAO.Database, mj As DAO.Recordset
Set db = CurrentDB() Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero] DESC") If mj.RecordCount > 0 Then mj.MoveFirst NumeroRecu = mj![Numero] + 1 Else NumeroRecu = 1 End If mj.Close db.Close
End Function
-- Cordialement
Jeff
Charte du forum : http://users.skynet.be/mpfa/
"Mario Limoges" a écrit dans le message de news:
Bonjour à tous, Acc97
La question a sûrement déjà été traitée, mais je ne trouve pas .
J'ai une table "Membres" avec comme clef primaire un champs "No" de type numéroauto, a cette table est lié un formulaire a partir duquel on peut entrer un nouveau membre. Mon problème vas comme suit. Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il
clique sur le bouton Annuler qui active "Me.Undo "DoCmd.Close le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c est ce que je voudrais empêcher
auriez-vous une idée
Merci à l'avance
Bonjour
Voici une fonction qui pourrait te mettre sur la piste...
Function NumeroRecu ()
Dim db As DAO.Database, mj As DAO.Recordset
Set db = CurrentDB()
Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
If mj.RecordCount > 0 Then
mj.MoveLast
NumeroRecu = mj![Numero] + 1
Else
NumeroRecu = 1
End If
mj.Close
db.Close
End Function
<--- Une autre version --->
Function NumeroRecu ()
Dim db As DAO.Database, mj As DAO.Recordset
Set db = CurrentDB()
Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]
DESC")
If mj.RecordCount > 0 Then
mj.MoveFirst
NumeroRecu = mj![Numero] + 1
Else
NumeroRecu = 1
End If
mj.Close
db.Close
End Function
--
Cordialement
Jeff
Charte du forum : http://users.skynet.be/mpfa/
"Mario Limoges" <mario.limoges@sympatico.ca> a écrit dans le message de
news:uCqaR6LlDHA.2268@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Acc97
La question a sûrement déjà été traitée, mais je ne trouve pas .
J'ai une table "Membres" avec comme clef primaire un champs "No" de type
numéroauto, a cette table est lié un formulaire a partir duquel on peut
entrer un nouveau membre. Mon problème vas comme suit.
Lorsque l'utilisateur active ce formulaire et que sans entrer de données,
il
clique sur le bouton Annuler qui active
"Me.Undo
"DoCmd.Close
le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c
est ce que je voudrais empêcher
Voici une fonction qui pourrait te mettre sur la piste...
Function NumeroRecu ()
Dim db As DAO.Database, mj As DAO.Recordset
Set db = CurrentDB() Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]") If mj.RecordCount > 0 Then mj.MoveLast NumeroRecu = mj![Numero] + 1 Else NumeroRecu = 1 End If mj.Close db.Close
End Function
<--- Une autre version --->
Function NumeroRecu ()
Dim db As DAO.Database, mj As DAO.Recordset
Set db = CurrentDB() Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero] DESC") If mj.RecordCount > 0 Then mj.MoveFirst NumeroRecu = mj![Numero] + 1 Else NumeroRecu = 1 End If mj.Close db.Close
End Function
-- Cordialement
Jeff
Charte du forum : http://users.skynet.be/mpfa/
"Mario Limoges" a écrit dans le message de news:
Bonjour à tous, Acc97
La question a sûrement déjà été traitée, mais je ne trouve pas .
J'ai une table "Membres" avec comme clef primaire un champs "No" de type numéroauto, a cette table est lié un formulaire a partir duquel on peut entrer un nouveau membre. Mon problème vas comme suit. Lorsque l'utilisateur active ce formulaire et que sans entrer de données, il
clique sur le bouton Annuler qui active "Me.Undo "DoCmd.Close le formulaire se ferme bien mais le numéroauto a été incrémenté de 1 et c est ce que je voudrais empêcher
auriez-vous une idée
Merci à l'avance
3stone
Salut Jeff,
"Jeff" a écrit dans
| Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
Même si cela fonctionne, il n'est pas utile de "ramener" toute la table alors qu'il n'y a que le [Numero] qui nous intéresse...
Et donc faire un : "Select [Numero] From ...." de plus, il est déjà indexé, vu qu'il est clé primaire.
Mais, pour le cas présent, autant utiliser un "DMax" qui ne demande à aucune déclaration.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Salut Jeff,
"Jeff" <jf@jf.com> a écrit dans
| Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
Même si cela fonctionne, il n'est pas utile de "ramener" toute la table
alors qu'il n'y a que le [Numero] qui nous intéresse...
Et donc faire un : "Select [Numero] From ...."
de plus, il est déjà indexé, vu qu'il est clé primaire.
Mais, pour le cas présent, autant utiliser un "DMax" qui ne demande à aucune déclaration.
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
| Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
Même si cela fonctionne, il n'est pas utile de "ramener" toute la table alors qu'il n'y a que le [Numero] qui nous intéresse...
Et donc faire un : "Select [Numero] From ...." de plus, il est déjà indexé, vu qu'il est clé primaire.
Mais, pour le cas présent, autant utiliser un "DMax" qui ne demande à aucune déclaration.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Jeff
Bonjour
Effectivement "SELECT [Numero] FROM ..." suffit
Merci pour la remarque
-- Cordialement
Jeff
Charte du forum : http://users.skynet.be/mpfa/ "3stone" a écrit dans le message de news:3f9012a1$0$262$
Salut Jeff,
"Jeff" a écrit dans
| Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
Même si cela fonctionne, il n'est pas utile de "ramener" toute la table
alors qu'il n'y a que le [Numero] qui nous intéresse...
Et donc faire un : "Select [Numero] From ...." de plus, il est déjà indexé, vu qu'il est clé primaire.
Mais, pour le cas présent, autant utiliser un "DMax" qui ne demande à aucune déclaration.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------
Bonjour
Effectivement "SELECT [Numero] FROM ..." suffit
Merci pour la remarque
--
Cordialement
Jeff
Charte du forum : http://users.skynet.be/mpfa/
"3stone" <3stone@skynet.be> a écrit dans le message de
news:3f9012a1$0$262$ba620e4c@reader1.news.skynet.be...
Salut Jeff,
"Jeff" <jf@jf.com> a écrit dans
| Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
Même si cela fonctionne, il n'est pas utile de "ramener" toute la
table
alors qu'il n'y a que le [Numero] qui nous intéresse...
Et donc faire un : "Select [Numero] From ...."
de plus, il est déjà indexé, vu qu'il est clé primaire.
Mais, pour le cas présent, autant utiliser un "DMax" qui ne demande à
aucune déclaration.
--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Charte du forum : http://users.skynet.be/mpfa/ "3stone" a écrit dans le message de news:3f9012a1$0$262$
Salut Jeff,
"Jeff" a écrit dans
| Set mj = db.OpenRecordset("SELECT * FROM [Table] ORDER BY [Numero]")
Même si cela fonctionne, il n'est pas utile de "ramener" toute la table
alors qu'il n'y a que le [Numero] qui nous intéresse...
Et donc faire un : "Select [Numero] From ...." de plus, il est déjà indexé, vu qu'il est clé primaire.
Mais, pour le cas présent, autant utiliser un "DMax" qui ne demande à aucune déclaration.
-- A+ Pierre (3stone) Access MVP ------------------------------------------------------- Bien démarrer ? c'est ici http://users.skynet.be/mpfa/ ( Je ne réponds pas aux emails qui concernent Access ) -------------------------------------------------------