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

Kyoshi6 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
Kyoshi6 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -

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. Bruno83200_6929 Messages postés 725 Date d'inscription   Statut Membre Dernière intervention   170
     

    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
  2. Kyoshi6 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   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. Bruno83200_6929 Messages postés 725 Date d'inscription   Statut Membre Dernière intervention   170
       

       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
  3. Kyoshi6 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   1
     

    Bonjour,

    Merci pour votre travail.

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

    cordialement

    0