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