Ouvert en normal

Tester si un Formulaire est ouvert en mode normal

Par la méthode "SysCmd"

Le résultat "ouvert en mode design" est renvoyé comme "fermé".

Function FormIsOpen(strFormName As String) As Boolean
    On Error Resume Next
    FormIsOpen = IIf(SysCmd(acSysCmdGetObjectState, acForm, strFormName), _
                     Forms(strFormName).CurrentView, False)
End Function

En comparant avec le nom des formulaires ouverts

Function FormIsOpen(strFormName) As Boolean
    Dim i As Integer
    ' Argument(s) : un nom de formulaire
    ' Action : détermine si un formulaire est chargé
    ' Valeur renvoyée : True si le formulaire spécifié est chargé;
    ' False dans le cas contraire.

    FormIsOpen = False

    For i = 0 To Forms.Count - 1
        If Forms(i).FormName = strFormName Then
            FormIsOpen = True
            Exit Function
        End If
    Next

End Function

A partir de Access 2000 on utilisera la collection "AllForms"

Function FormIsOpen(strFormName) As Boolean
    FormIsOpen = CurrentProject.AllForms(strFormName).IsLoaded
End Function

Que l'on peut bien sûr utiliser directement...

If CurrentProject.AllForms("NomDuFormulaire").IsLoaded Then


Dernière modification : 08/02/2010 01:41
Catégorie : Les mémos - Formulaires
Page lue 8120 fois