OVH Cloud OVH Cloud

Fermeture automatique d'un formulaire

5 réponses
Avatar
gerard v
bonjour
je voudrais fermer le formulaite Form_TFonction si il est ouvert depuis
Form_Dossier
j'essai de verifier d'abord si il est ouvert
If Form_TFonction.visible then
DoCmd.close acform, "Form_TFonction"
End if
et ca marche pas

merci

5 réponses

Avatar
Didier
Bonjour,
colle "ça" dans un module :

Option Compare Database
Option Explicit

Public Function IsOpen(ByVal strFormName As String) As
Boolean
'Retourne la valeur True si le formulaire spécifié est
ouvert en mode Formulaire.

Const conDesignView = 0
Const conObjStateClosed = 0

IsOpen = False
If SysCmd(acSysCmdGetObjectState, acForm,
strFormName) <> _
conObjStateClosed Then

If Forms(strFormName).CurrentView <>
conDesignView Then
IsOpen = True
End If
End If
End Function


et ceci dans ton formulaire "Dossier" (sur un évennement
de ton choix par exemple ici sur ouverture du formulaire
Dossier:



Private Sub Form_Open(Cancel As Integer)
If IsOpen("TFonction") Then
DoCmd.Close acForm, "TFonction"
End If
Avatar
gerard v
salut
j'utilise une fonction
Public Function EstCharge(ByVal FName) as Boolean
Dim LaForm as Foem
EstCharge = False
For Each LaForm in Forms
If LaForm.name=FName then
EstCharge= True
Exit Function
End if
Next LaForm
End function

ensuite por l'appelle
If EstChage("TFonction") then
DoCmd.Close acForm,"Form_TFonction"
End if

eh bien ma form ne disparait pa s de l'ecran!!!



"Didier" a écrit dans le message de
news:04cf01c3b19f$da7fc970$
Bonjour,
colle "ça" dans un module :

Option Compare Database
Option Explicit

Public Function IsOpen(ByVal strFormName As String) As
Boolean
'Retourne la valeur True si le formulaire spécifié est
ouvert en mode Formulaire.

Const conDesignView = 0
Const conObjStateClosed = 0

IsOpen = False
If SysCmd(acSysCmdGetObjectState, acForm,
strFormName) <> _
conObjStateClosed Then

If Forms(strFormName).CurrentView <>
conDesignView Then
IsOpen = True
End If
End If
End Function


et ceci dans ton formulaire "Dossier" (sur un évennement
de ton choix par exemple ici sur ouverture du formulaire
Dossier:



Private Sub Form_Open(Cancel As Integer)
If IsOpen("TFonction") Then
DoCmd.Close acForm, "TFonction"
End If
Avatar
Raymond [mvp]
Bonjour.

puisque tu as les objets forms tu peux faire directement:
If CurrentProject.AllForms("TFonction").IsLoaded Then
DoCmd.Close acForm,"TFonction"
End if

mais aussi:
on error resume next
DoCmd.Close acForm,"TFonction"
qui est moins beau que le précédent
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"gerard v" a écrit dans le message de
news:bppvrk$74h$
salut
j'utilise une fonction
Public Function EstCharge(ByVal FName) as Boolean
Dim LaForm as Foem
EstCharge = False
For Each LaForm in Forms
If LaForm.name=FName then
EstCharge= True
Exit Function
End if
Next LaForm
End function

ensuite por l'appelle
If EstChage("TFonction") then
DoCmd.Close acForm,"Form_TFonction"
End if

eh bien ma form ne disparait pa s de l'ecran!!!


Avatar
J-Pierre
Y'a une petite erreur dans ton if

For Each LaForm in Forms
If LaForm.name=FName then
EstCharge= True
Exit for 'tu sors de la fonction, il faut sortir de la boucle
End if
Next LaForm

J-Pierre

"gerard v" a écrit dans le message de news:bppvrk$74h$
salut
j'utilise une fonction
Public Function EstCharge(ByVal FName) as Boolean
Dim LaForm as Foem
EstCharge = False
For Each LaForm in Forms
If LaForm.name=FName then
EstCharge= True
Exit Function
End if
Next LaForm
End function

ensuite por l'appelle
If EstChage("TFonction") then
DoCmd.Close acForm,"Form_TFonction"
End if

eh bien ma form ne disparait pa s de l'ecran!!!



"Didier" a écrit dans le message de
news:04cf01c3b19f$da7fc970$
Bonjour,
colle "ça" dans un module :

Option Compare Database
Option Explicit

Public Function IsOpen(ByVal strFormName As String) As
Boolean
'Retourne la valeur True si le formulaire spécifié est
ouvert en mode Formulaire.

Const conDesignView = 0
Const conObjStateClosed = 0

IsOpen = False
If SysCmd(acSysCmdGetObjectState, acForm,
strFormName) <> _
conObjStateClosed Then

If Forms(strFormName).CurrentView <>
conDesignView Then
IsOpen = True
End If
End If
End Function


et ceci dans ton formulaire "Dossier" (sur un évennement
de ton choix par exemple ici sur ouverture du formulaire
Dossier:



Private Sub Form_Open(Cancel As Integer)
If IsOpen("TFonction") Then
DoCmd.Close acForm, "TFonction"
End If




Avatar
Gilbert
Bonjour

Tu peux utiliser ça
if Forms!Form_TFonction.visible then

Cordialement

Gilbert

"gerard v" a écrit dans le message de news:
bppqd2$unu$
bonjour
je voudrais fermer le formulaite Form_TFonction si il est ouvert depuis
Form_Dossier
j'essai de verifier d'abord si il est ouvert
If Form_TFonction.visible then
DoCmd.close acform, "Form_TFonction"
End if
et ca marche pas

merci