Faq/Base/146/fr

    From The Document Foundation Wiki
    < Faq‎ | Base

    Comment créer un formulaire Menu et ouvrir les autres formulaires par clics sur des boutons ?

    La première étape consiste à créer tous les formulaires de la Base et un formulaire Menu avec les boutons (contrôle PushButton) qui, par clic, ouvriront les autres formulaires.

    Écrire et enregistrer une Macro pour chaque formulaire à ouvrir

    Par exemple, pour ouvrir le formulaire "Nom_du_formulaire", le code de la Macro est :

    Sub OuvrirFormulaireParSonNom
    '**********************************************************************************************
    'Ouvre le formulaire nommé
    '==============================================================================================
    ThisDatabaseDocument.FormDocuments.getByName( "Nom_du_Formulaire" ).open
    End Sub

    En pratique, si la Base a deux formulaires Formulaire1 et Formulaire2, il faudra donc deux Macros :

    Sub OuvrirFormulaire1
    '**********************************************************************************************
    'Ouvre le formulaire nommé Formulaire1
    '==============================================================================================
    ThisDatabaseDocument.FormDocuments.getByName( "Formulaire1" ).open
    End Sub
    
    Sub OuvrirFormulaire2
    '**********************************************************************************************
    'Ouvre le formulaire nommé Formulaire2
    '==============================================================================================
    ThisDatabaseDocument.FormDocuments.getByName( "Formulaire2" ).open
    End Sub

    Écrire et enregistrer une seule Macro utilisée pour l’ouverture de tous les formulaires

    Le code de la Macro :

    Sub OuvrirFormulaireParTag(evt As Object)
    '**********************************************************************************************
    ' Lancée par l'appui sur un bouton
    ' Permet l'ouverture d'un formulaire dont le nom est renseigné dans le champ
    ' "Complément d'information" du bouton
    '==============================================================================================
    Dim oForms As Object
    Dim sNomForm As String
        sNomForm = evt.Source.Model.tag
        oForms = ThisComponent.Parent.FormDocuments
        IF oForms.hasByName(sNomForm)  Then
            oForms.getByName(sNomForm).open
        Else
            MsgBox("Formulaire inconnu : " & sNomForm, 16)
        End IF
    End Sub

    La Base exemple avec ses formulaires Menu, Formulaire1 et Formulaire2 ouverts par tag.

    File:Base Ouverture Par Tag.odb