OVH Cloud OVH Cloud

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

1 réponse

1 2
Avatar
Ilan
Bonjour Guy,

Declare la variable AnnuleNew (et non AbortNew je me suis trompe) dans
l'en-tete
du code du formulaire. N'oublie pas d'ecrire AnnuleNewúlse quand
l'utilisateur
veut bien ajouter un enregistrement. Il serait plutot desagreable que le
formulaire
se ferme lors de la saisie du nouvel enregistrement.



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