Switch Modal
Les formulaires possèdent une propriété qui leur permet de rester à l'avant-plan (modale).
Si l'on souhaite modifier cette propriété, il faut ouvrir le formulaire en mode création, se rendre dans la fenêtre des propriétés, modifier la propriété "Fenêtre modale" et pour finir, sauver le formulaire.
Lorsqu'il s'agit de faire cela pour une série de formulaires, cela devient rapidement fastidieux... sauf si l'on utilise la fonction FormModal( ) ci-dessous!
Utilisation:
Cette fonction sera appellée par un bouton sur un formulaire (on ne pourra bien sûr pas accéder à ce formulaire) ou dans la fenêtre d'exécution directe que l'on appelle par les touches Ctrl + G
Exemples d'appels à la fonction:
FormModal True , "F_"
ce qui placera tous les formulaires dont le nom commence pas "F_" en modal.
FormModal False , "F_Clients"
ce qui supprimera la propriété modale de tous les formulaires dont le nom commence par "F_Clients"
Function FormModal(boModal As Boolean, sPartName As String)
Dim obj As AccessObject, db As Object
Dim sForm As String, sFormList As String
Set db = Application.CurrentProject
'/ Boucler sur tous les formulaires
For Each obj In db.AllForms
sForm = obj.Name
If Left(sForm, Len(sPartName)) = sPartName Then
sFormList = sFormList & sForm & vbCrLf
DoCmd.OpenForm (sForm), acDesign, , , , acHidden
Forms(sForm).Modal = boModal
DoCmd.Close acForm, sForm, acSaveYes
End If
Next obj
MsgBox "Liste des objets traités:" & vbCrLf & vbCrLf & sFormList
'/ Libérer
Set db = Nothing
End Function