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

Access ne veut pas fermer mon formulaire

11 réponses
Avatar
Guy FALESSE
Bonjour à tous,
Lorsque je veux fermer le formulaire, Access m'envoie une erreur, comment
peut-on contourner cet obstacle

Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
ElseIf rep = vbYes Then
If EstChargé("frmDevis") Then
Set meF = Forms!frmDevis
End If
Set rst = Me.RecordsetClone
Me!Ndevis = meF!Ndevis
With rst
If .RecordCount > 0 Then
.MoveLast
Me!TypeTravail = !TypeTravail
Me!Lieu = !Lieu
.Close
End If
End With
End If
End If
Set rst = Nothing
End Sub

D'avance merci pour vos conseils,

Guy FALESSE

10 réponses

1 2
Avatar
Guy FALESSE
Bonjour,
Avant de poser cette question, je précise que je suis allé voir par Google
dans le forum, mais aucune réponse satisfaisante n'avait été donnée jusqu'à
aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a cliqué par
erreur sur le bouton ajout des boutons de navigations, d'annuler cettte
commande.
@+

Guy FALESSE

"Guy FALESSE" a écrit dans le message de
news:
Bonjour à tous,
Lorsque je veux fermer le formulaire, Access m'envoie une erreur, comment
peut-on contourner cet obstacle

Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
ElseIf rep = vbYes Then
If EstChargé("frmDevis") Then
Set meF = Forms!frmDevis
End If
Set rst = Me.RecordsetClone
Me!Ndevis = meF!Ndevis
With rst
If .RecordCount > 0 Then
.MoveLast
Me!TypeTravail = !TypeTravail
Me!Lieu = !Lieu
.Close
End If
End With
End If
End If
Set rst = Nothing
End Sub

D'avance merci pour vos conseils,

Guy FALESSE




Avatar
Raymond [mvp]
Bonjour Guy.

je ne comprends pas ton organisation. si nouvel enregistrement tu poses la
question nouvel enregistrement et si non tu fermes un formulaire, lequel ?
celui sur lequel tu es ? tu peux préciser ce que tu fais.
pour cette dernière question si tu es en newrecord par le bouton, pour
annuler tu navigues avec les boutons de navigation sauf next et tu sors du
newreord tout seul.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy FALESSE" a écrit dans le message de news:
%
Bonjour,
Avant de poser cette question, je précise que je suis allé voir par Google
dans le forum, mais aucune réponse satisfaisante n'avait été donnée
jusqu'à
aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a cliqué par
erreur sur le bouton ajout des boutons de navigations, d'annuler cettte
commande.
@+


Avatar
3stone
Salut,

"Guy FALESSE"
Avant de poser cette question, je précise que je suis allé voir par Google
dans le forum, mais aucune réponse satisfaisante n'avait été donnée jusqu'à
aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a cliqué par
erreur sur le bouton ajout des boutons de navigations, d'annuler cettte
commande.




Je viens d'essayer et je n'obtiens pas d'erreur...
Je clique sur "Ajout", j'annulle et je ferme le formulaire, sans problème!

Quelle est cette erreur que tu obtiens ?
Tu n'aurais pas un code qui écrit déjà dans une zone de texte ?


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome

Avatar
Guy FALESSE
Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé moi-même
pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je clique sur
le bouton ajout des boutons de navigatins créé par Access, j'ai la même
erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le formulaire
se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal placées,
pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE



"3stone" a écrit dans le message de
news:%
Salut,

"Guy FALESSE"
Avant de poser cette question, je précise que je suis allé voir par
Google


dans le forum, mais aucune réponse satisfaisante n'avait été donnée
jusqu'à


aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a cliqué
par


erreur sur le bouton ajout des boutons de navigations, d'annuler cettte
commande.




Je viens d'essayer et je n'obtiens pas d'erreur...
Je clique sur "Ajout", j'annulle et je ferme le formulaire, sans problème!

Quelle est cette erreur que tu obtiens ?
Tu n'aurais pas un code qui écrit déjà dans une zone de texte ?


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome






Avatar
Ilan
Bonjour Guy,

il est necessaire que tu sortes de l'evenement avant de fermer le formulaire.
essaie en declarant
Ex (Dim AbortNew as Boolean)
dans l'evenement Form_Current
IF Rep=VbNo THEN AnnuleNew=True

envoie le focus a un controle du formulaire pour sortir de l'evenement
Current.
Dans l'evenement Reception Focus du controle, tu fermes le formulaire si
IF AnnuleNew=True THEN Docmd.Close acForm,Form.Name,AcSaveYes


Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé moi-même
pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je clique sur
le bouton ajout des boutons de navigatins créé par Access, j'ai la même
erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le formulaire
se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal placées,
pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE



"3stone" a écrit dans le message de
news:%
Salut,

"Guy FALESSE"
Avant de poser cette question, je précise que je suis allé voir par
Google


dans le forum, mais aucune réponse satisfaisante n'avait été donnée
jusqu'à


aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a cliqué
par


erreur sur le bouton ajout des boutons de navigations, d'annuler cettte
commande.




Je viens d'essayer et je n'obtiens pas d'erreur...
Je clique sur "Ajout", j'annulle et je ferme le formulaire, sans problème!

Quelle est cette erreur que tu obtiens ?
Tu n'aurais pas un code qui écrit déjà dans une zone de texte ?


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome











Avatar
Raymond [mvp]
Bonsoir.

mets plutôt ces commandes.
Me.Undo
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes

Toute saisie éventuelle en cours sera perdue.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy FALESSE" a écrit dans le message de news:

Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé moi-même
pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je clique
sur
le bouton ajout des boutons de navigatins créé par Access, j'ai la même
erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le
formulaire
se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal placées,
pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE


Avatar
Guy FALESSE
Salut Raymond,

Merci pour ta réponse, mais pas de chance me.undo ne fonctionne pas dans mon
cas.
@+

Guy FALESSE

"Raymond [mvp]" a écrit dans le message de
news:%
Bonsoir.

mets plutôt ces commandes.
Me.Undo
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes

Toute saisie éventuelle en cours sera perdue.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Guy FALESSE" a écrit dans le message de news:

Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé
moi-même


pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je clique
sur
le bouton ajout des boutons de navigatins créé par Access, j'ai la même
erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le
formulaire
se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal placées,
pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE






Avatar
Guy FALESSE
Salut Ilan,

Ça a l'air de marcher sauf que dans la réception du focus, la variable n'est
pas reconnue, donc, bien sûr, on passe outre de la commande fermer, je vasi
teseter en la rendant public, on ne sait jamais.
Pas de chance, tout avait l'air de fonctionner jusqu'à l'apparition de cette
fameuse erreur 2585.
Merci d'avoir essayé.
@+

Guy FALESSE

"Ilan" a écrit dans le message de
news:
Bonjour Guy,

il est necessaire que tu sortes de l'evenement avant de fermer le
formulaire.

essaie en declarant
Ex (Dim AbortNew as Boolean)
dans l'evenement Form_Current
IF Rep=VbNo THEN AnnuleNew=True

envoie le focus a un controle du formulaire pour sortir de l'evenement
Current.
Dans l'evenement Reception Focus du controle, tu fermes le formulaire si
IF AnnuleNew=True THEN Docmd.Close acForm,Form.Name,AcSaveYes


Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé
moi-même


pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je clique
sur


le bouton ajout des boutons de navigatins créé par Access, j'ai la même
erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le
formulaire


se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal placées,
pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE



"3stone" a écrit dans le message de
news:%
Salut,

"Guy FALESSE"
Avant de poser cette question, je précise que je suis allé voir par
Google


dans le forum, mais aucune réponse satisfaisante n'avait été donnée
jusqu'à


aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a
cliqué




par
erreur sur le bouton ajout des boutons de navigations, d'annuler
cettte




commande.




Je viens d'essayer et je n'obtiens pas d'erreur...
Je clique sur "Ajout", j'annulle et je ferme le formulaire, sans
problème!




Quelle est cette erreur que tu obtiens ?
Tu n'aurais pas un code qui écrit déjà dans une zone de texte ?


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome













Avatar
Ilan
Bonjour,
la variable doit etre declaree dans l'entete du code du formulaire. Nul besoin
de la rendre public si tu n'en as pas besoin en dehors de ce formulaire.
Bien sur tu as compris que j' ai remplace AnnuleNew par AbortNew dans mon
post.





Salut Ilan,

Ça a l'air de marcher sauf que dans la réception du focus, la variable n'est
pas reconnue, donc, bien sûr, on passe outre de la commande fermer, je vasi
teseter en la rendant public, on ne sait jamais.
Pas de chance, tout avait l'air de fonctionner jusqu'à l'apparition de cette
fameuse erreur 2585.
Merci d'avoir essayé.
@+

Guy FALESSE

"Ilan" a écrit dans le message de
news:
Bonjour Guy,

il est necessaire que tu sortes de l'evenement avant de fermer le
formulaire.

essaie en declarant
Ex (Dim AbortNew as Boolean)
dans l'evenement Form_Current
IF Rep=VbNo THEN AnnuleNew=True

envoie le focus a un controle du formulaire pour sortir de l'evenement
Current.
Dans l'evenement Reception Focus du controle, tu fermes le formulaire si
IF AnnuleNew=True THEN Docmd.Close acForm,Form.Name,AcSaveYes


Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé
moi-même


pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je clique
sur


le bouton ajout des boutons de navigatins créé par Access, j'ai la même
erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le
formulaire


se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal placées,
pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE



"3stone" a écrit dans le message de
news:%
Salut,

"Guy FALESSE"
Avant de poser cette question, je précise que je suis allé voir par
Google


dans le forum, mais aucune réponse satisfaisante n'avait été donnée
jusqu'à


aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a
cliqué




par
erreur sur le bouton ajout des boutons de navigations, d'annuler
cettte




commande.




Je viens d'essayer et je n'obtiens pas d'erreur...
Je clique sur "Ajout", j'annulle et je ferme le formulaire, sans
problème!




Quelle est cette erreur que tu obtiens ?
Tu n'aurais pas un code qui écrit déjà dans une zone de texte ?


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome


















Avatar
Guy FALESSE
Salut Ilan,

Oui, j'ai bien écrit AbortNew au lieu de AnnuleNew, si j'ai rendu la
variable publique c'est que lorsqu'elle est déclarée dans form_open, elle
n'est plus reconnue dans le contrôle qui reçoit le focus et de cette
manière, AnnuleNew devient true, mais j'ai l'erreur 2585.
Merci.
@+

Guy FALESSE

"Ilan" a écrit dans le message de
news:
Bonjour,
la variable doit etre declaree dans l'entete du code du formulaire. Nul
besoin

de la rendre public si tu n'en as pas besoin en dehors de ce formulaire.
Bien sur tu as compris que j' ai remplace AnnuleNew par AbortNew dans mon
post.





Salut Ilan,

Ça a l'air de marcher sauf que dans la réception du focus, la variable
n'est


pas reconnue, donc, bien sûr, on passe outre de la commande fermer, je
vasi


teseter en la rendant public, on ne sait jamais.
Pas de chance, tout avait l'air de fonctionner jusqu'à l'apparition de
cette


fameuse erreur 2585.
Merci d'avoir essayé.
@+

Guy FALESSE

"Ilan" a écrit dans le message de
news:
Bonjour Guy,

il est necessaire que tu sortes de l'evenement avant de fermer le
formulaire.

essaie en declarant
Ex (Dim AbortNew as Boolean)
dans l'evenement Form_Current
IF Rep=VbNo THEN AnnuleNew=True

envoie le focus a un controle du formulaire pour sortir de l'evenement
Current.
Dans l'evenement Reception Focus du controle, tu fermes le formulaire
si



IF AnnuleNew=True THEN Docmd.Close acForm,Form.Name,AcSaveYes


Salut Pierre,

Merci pour ta réponse.
Donc, comme je l'ai écrit à Raymon, c'est un bouton que j'ai créé
moi-même


pour ouvrir un nouveau formulaire là où sur activation se trouve la
fonction:
Private Sub Form_Current()
Dim NewRec, rst As Recordset, rep As Integer, meF As Form
NewRec = Me.NewRecord
If NewRec = True Then
rep = MsgBox("Nouvel enregistrement?", vbQuestion + vbYesNo)
If rep = vbNo Then
DoCmd.CancelEvent
DoCmd.Close acForm, "frmSousDevisTemp", acSaveYes
Bon, soit que je clique sur le bouton que j'ai créé, soit que je
clique




sur
le bouton ajout des boutons de navigatins créé par Access, j'ai la
même




erreur 2585.
Ici, j' aurais voulu que lorsqu'on répond par la négative, que le
formulaire


se ferme sans rien faire et sans erreur.
Enfin, voilà, peut-être aussi que mes lignes de code soient mal
placées,




pourquoi pas :-)
Je suis peut-être un peu touffu, non?
En tout cas, merci de vous êtes penchés sur mon cas.
@+
Guy FALESSE



"3stone" a écrit dans le message de
news:%
Salut,

"Guy FALESSE"
Avant de poser cette question, je précise que je suis allé voir
par






Google
dans le forum, mais aucune réponse satisfaisante n'avait été
donnée






jusqu'à
aujourd'hui, c'est pourquoi, je la repose maintenant.
Dois-je en conclure qu'il n'y a aucune possibilité, lorsqu'on a
cliqué




par
erreur sur le bouton ajout des boutons de navigations, d'annuler
cettte




commande.




Je viens d'essayer et je n'obtiens pas d'erreur...
Je clique sur "Ajout", j'annulle et je ferme le formulaire, sans
problème!




Quelle est cette erreur que tu obtiens ?
Tu n'aurais pas un code qui écrit déjà dans une zone de texte ?


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome




















1 2