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

Formulaire qui ne veut pas se fermer

2 réponses
Avatar
defluc
J'ai un formulaire comportant deux boutons. Le premier est un "Exit" qui
effectue la commande 'DoCmd.Close acForm, "TerrBati"'. Pas de problème,
le formulaire disparait de l'écran.
Le deuxième bouton effectue un certain traitement avant d'exécuter la
même commande de fermeture mais le formulaire ne se ferme pas. En
débogage, je passe bien sur l'instruction de fermeture.

Quelle peut-être la raison de cette anomalie ?

Merci d'avance pour toute suggestion.

2 réponses

Avatar
ChtiCoin
-----Message d'origine-----
J'ai un formulaire comportant deux boutons. Le premier
est un "Exit" qui

effectue la commande 'DoCmd.Close acForm, "TerrBati"'.
Pas de problème,

le formulaire disparait de l'écran.
Le deuxième bouton effectue un certain traitement avant
d'exécuter la

même commande de fermeture mais le formulaire ne se ferme
pas. En

débogage, je passe bien sur l'instruction de fermeture.

Quelle peut-être la raison de cette anomalie ?

Merci d'avance pour toute suggestion.

Pour t'aider, il faudrait connaître le code de ton 2nd
bouton. Met le en ligne, que je puisse le regarder, et

joint également le code de ton bouton de fermeture. (Pour
le cas ou...) @+

Avatar
defluc
'Voici le code du bouton qui ne ferme pas le formulaire

Private Sub ConfirmBtn_Click()
Dim Db As Database, Rst As Recordset
NonBatiYear = NonBatiYearTxt
PuYear = PuYearTxt
ConstrYear = ConstrYearTxt
PlanSect = PlanSectList
Set Db = CurrentDb
Set Rst = Db.OpenRecordset("TableBienNonBati")
Rst.Index = "RefCadStrClef"
RefCadStrBuild
Rst.Seek "=", RefCadStrClef
If Rst.NoMatch Then 'Not : 'Le numéro d'enregistrement contenant la
donnée à écrire
' n'existe pas il faut donc l'ajouter
Rst.AddNew
Rst![Div] = Div
Rst![Sect] = Sect
Rst![Radical] = Radical
Rst![ExposLet] = ExposLet
Rst![ExposDigit] = ExposDigit
Rst![Indice] = Indice
Rst![AnnTerrNonBati] = NonBatiYear
If ConstrYear <> "" Then Rst![AnnConstr] = ConstrYear
Rst![PlanSect] = PlanSect
Rst![CodeProprio] = CodeProprio
Rst![Article] = Article
Rst![NoOrdre] = NoOrdre
Rst![Contenance] = Contenance
Rst![RefCadStrClef] = RefCadStrClef
Rst.Update
Rst.Bookmark = Rst.LastModified
Else 'Le numéro d'enregistrement contenant
les données à écrire existe
Rst.Edit
Rst.Fields![AnnTerrNonBati] = NonBatiYear
If PuYear <> "" Then Rst![AnnPu] = PuYear
If ConstrYear <> "" Then Rst![AnnConstr] = ConstrYear
Rst![PlanSect] = PlanSect
Rst.Update
MsgBox " Ce terrain est déjà enregistré." +
Chr(13) + _
" La base de données va être mise à jour " +
Chr(13) + _
"avec les modifications ou ajouts de données que vous
auriez faites "
End If
Rst.Close
Db.Close
Set Db = Nothing
Set Rst = Nothing


DoCmd.Close acForm, "TerrBati"
End Sub


' et, pour être complet, la routine appelée

Public Sub RefCadStrBuild()
RefCadStrClef = Trim(Str(Div)) + "/" + Sect + "/" +
Trim(Str(Radical)) + "/"
If ExposLet = "" Then RefCadStrClef = RefCadStrClef + " "
Else RefCadStrClef = RefCadStrClef + ExposLet
RefCadStrClef = RefCadStrClef + "/"
If ExposDigit = "" Then RefCadStrClef = RefCadStrClef + "
" Else RefCadStrClef = RefCadStrClef + ExposDigit
RefCadStrClef = RefCadStrClef + "/"
If Indice = "" Then RefCadStrClef = RefCadStrClef + " "
Else RefCadStrClef = RefCadStrClef + Indice

End Sub


'Et enfin, le code du bouton "Exit" qui assure normalement
'son rôle de fermeture du formulaire

Private Sub AnnulBtn_Click()

If IsNull(RefCadListe.Column(0, 0)) Then
DoCmd.Close acForm, "TerrBati"
Exit Sub
End If
Form_ProprioParcelle.BatiCoche.Value = False
If RecInList(RefCadStrClef) = False Then
Form_ProprioParcelle.BatiCoche.Value = False
If MsgBox("Les données en cours n'ont pas été enregistrées dans la
liste des terrains non bâtis." & Chr(13) & _
"Elles ne figureront donc pas dans la liste d'impression si
vous ne les sauvegardez pas maintenant." & Chr(13) & Chr(13) & _
"Voulez-vous les enregistrer ?", vbYesNo, "Avertissement") =
vbYes Then
ConfirmBtn_Click
Form_ProprioParcelle.BatiCoche.Value = True

Else
Form_ProprioParcelle.BatiCoche.Value = False
End If
End If
DoCmd.Close acForm, "TerrBati"


End Sub

ChtiCoin a écrit:
-----Message d'origine-----
J'ai un formulaire comportant deux boutons. Le premier


est un "Exit" qui

effectue la commande 'DoCmd.Close acForm, "TerrBati"'.


Pas de problème,

le formulaire disparait de l'écran.
Le deuxième bouton effectue un certain traitement avant


d'exécuter la

même commande de fermeture mais le formulaire ne se ferme


pas. En

débogage, je passe bien sur l'instruction de fermeture.

Quelle peut-être la raison de cette anomalie ?

Merci d'avance pour toute suggestion.



Pour t'aider, il faudrait connaître le code de ton 2nd


bouton. Met le en ligne, que je puisse le regarder, et
joint également le code de ton bouton de fermeture. (Pour
le cas ou...) @+