Intégrer une fonction de recherche adhèrent dans le menu

Bonjour,

J'ai une base de donnée Adhérents créée avec ACCESS.

Dans mon formulaire Adhérant, dans le pied de formulaire j'ai une recherche adhérant avec menu déroulant qui fonctionne.

Je voudrais avoir cette fonction dans mon menu (formulaire général).

Si quelqu'un a une solution ?

Merci d'avance

Cordialement

3 réponses

  1. Bonjour,

    Dans votre formulaire de menu général, ajoutez :
    - Une zone de liste déroulante

    Mode Création → Ajoutez une zone de liste déroulante
    Source contrôle :

    SELECT ID_Adherent, Nom, Prenom FROM Adherents ORDER BY Nom, Prenom;

    Nommez-la par exemple cboRechercheAdherent

    Code VBA pour ouvrir le formulaire avec l'adhérent sélectionné
    Dans les propriétés de la zone de liste, événement "Après MAJ" :

    Private Sub cboRechercheAdherent_AfterUpdate()
        If Not IsNull(Me.cboRechercheAdherent) Then
            DoCmd.OpenForm "NomDeVotreFormulaireAdherent", , , "ID_Adherent = " & Me.cboRechercheAdherent
            Me.cboRechercheAdherent = Null  'Réinitialise la recherche
        End If
    End Sub

    0
    1. Bonjour,

      Merci pour votre réponse rapide.

      Après plusieurs essais, je n'y arrive pas. (je suis pas très doué.)

      Pouvez vous me détaillé la procedure.

      En vous remerciant par avance

      cordialement

      0
      1.  1 : Ouvrir votre formulaire Menu en mode Création

        Ouvrez votre base de données Access
        Dans le volet gauche, cliquez sur "Formulaires"
        Faites un clic droit sur votre formulaire de menu général
        Choisissez "Mode Création"

         2 : Ajouter une zone de liste déroulante

        Dans le ruban en haut, cliquez sur l'onglet "Création"
        Dans le groupe "Contrôles", désactivez le bouton "Utiliser les Assistants Contrôle" (s'il est activé)
        Cliquez sur l'icône "Zone de liste déroulante" (c'est une petite boîte avec une flèche vers le bas)
        Tracez un rectangle dans votre formulaire menu (là où vous voulez la liste)

         3 : Configurer la zone de liste déroulante

        La zone de liste est maintenant créée. Faites un clic droit dessus
        Choisissez "Propriétés"
        Dans la fenêtre des propriétés, onglet "Toutes", modifiez ces paramètres :

        Propriétés importantes à remplir :

        Nom: cboRechercheAdherent

        Origine source: Adhérents (le nom de votre table)

        Contenu:

        Cliquez sur les 3 petits points ... puis suivez l'étape ci-dessous


        Pour le Contenu (Requête SQL) :
        Quand vous cliquez sur les 3 points, une fenêtre s'ouvre. En bas de cette fenêtre, il devrait y avoir un bouton "Affichage SQL" ou un bouton pour basculer en mode SQL. Cliquez dessus et collez ceci :

        SELECT ID_Adherent, Nom & " " & Prenom AS NomComplet FROM Adherents ORDER BY Nom, Prenom;

        Important : Remplacez ID_Adherent, Nom, Prenom et Adherents par les vrais noms de vos champs et table.

        Fermez la fenêtre de requête (elle vous demande de sauvegarder, cliquez OUI)
        Retournez dans les propriétés et modifiez encore ces paramètres :

        Colonne liée: 1

        Nbre colonnes: 2

        Largeurs colonnes:  0cm;5cm (ceci cache la première colonne ID et affiche le nom)

        Largeur liste: 5cm

        4 : Ajouter une étiquette (optionnel mais recommandé)

        Dans le ruban "Création", cliquez sur "Étiquette" (icône "Aa")
        Tracez un rectangle à côté ou au-dessus de votre zone de liste
        Tapez : "Rechercher un adhérent :"

        5 : Ajouter le code VBA
        C'est la partie importante qui fait fonctionner la recherche !

        Sélectionnez votre zone de liste déroulante cboRechercheAdherent
        Dans les propriétés, cliquez sur l'onglet "Événement"
        Trouvez la ligne "Après MAJ"
        Cliquez dans la case à droite, une petite flèche et trois points ... apparaissent
        Cliquez sur les trois points ...
        Une fenêtre apparaît avec 3 choix : choisissez "Générateur de code"
        Cliquez sur OK

        Une fenêtre de code VBA s'ouvre avec quelque chose comme :

        Private Sub cboRechercheAdherent_AfterUpdate()
        
        End Sub

        Entre ces deux lignes, collez ce code :

        Private Sub cboRechercheAdherent_AfterUpdate()
            If Not IsNull(Me.cboRechercheAdherent) Then
                DoCmd.OpenForm "Adherant", , , "ID_Adherent = " & Me.cboRechercheAdherent
                Me.cboRechercheAdherent = Null
            End If
        End Sub

         Très important :

        Remplacez "Adherant" par le nom exact de votre formulaire d'adhérent (regardez dans le volet gauche)
        Remplacez ID_Adherent par le nom exact de votre champ clé primaire dans votre table


        Fermez la fenêtre de code (cliquez sur le X)

         6 : Enregistrer et tester

        Enregistrez votre formulaire : Ctrl + S ou icône disquette
        Fermez le mode Création
        Ouvrez votre formulaire menu normalement (double-clic)
        Essayez la liste déroulante : sélectionnez un adhérent
        Le formulaire de l'adhérent devrait s'ouvrir automatiquement !

        Si ça ne fonctionne pas
        Problème courant n°1 : Message d'erreur avec des chiffres

        Vérifiez que les noms ID_Adherent, Nom, Prenom, Adherents correspondent exactement à votre base

        Problème courant n°2 : La liste est vide

        Vérifiez l'orthographe du nom de votre table dans la requête SQL

        Problème courant n°3 : Le formulaire ne s'ouvre pas

        Vérifiez le nom exact de votre formulaire d'adhérent dans le code VBA

        0
    2. Bonjour,

      Merci pour votre travail.

      Mais malglé plusieurs tentatives et essais je n'arrive pas a le faire fonctionner.

      cordialement

      0