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

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

 

A voir également:

3 réponses

Bruno83200_6929 Messages postés 684 Date d'inscription   Statut Membre Dernière intervention   159
 

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
Kyoshi6 Messages postés 47 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
Bruno83200_6929 Messages postés 684 Date d'inscription   Statut Membre Dernière intervention   159
 

 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
Kyoshi6 Messages postés 47 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