Domaines
RH
Juridique
Compta
Administratif/Moyens Généraux
Communication
Bureautique
Conseils aux débutants
Word
Excel
PowerPoint
Outlook
Access
Publisher

PagePlus (PAO)

Windows/système
PhotoImpact
Conception web : les bases
Applications pas à pas
Tests logiciels
Macros VBA
Leçons
Macros Word
Astuces
Orthographe
Rédaction
Organisation
Produits/services malins
Outils
Ouvrages
Modèles
Macros
Liens
Anglais
Grammaire avec AnglaisFacile
Leçon gratuite avec AnglaisFacile
Carrière
Gestion de carrière
Fiches métier
Témoignages / vécu
Offres d'emploi

Evénements métier
Echos de presse, comptes-rendus

Echanger

Forums
Chater en direct

© Nadège Guilbert
Le contenu de ce site
est régulièrement déposé auprès de la SGDL
Reproduction interdite
sans le consentement
écrit de l'auteur


Imprimer la page

Bureautique > Access

16-Nov-2006

 

 

Créer un formulaire de recherche avec liste déroulante

La macro

Notre objectif va consister à présent à associer un choix dans la liste déroulante à une macro.
Cette dernière devra remplir les objectifs suivants :

- ouvrir le formulaire Clients ;
- se positionner sur le client sélectionné dans la liste déroulante ;
- refermer la fenêtre RechercheClient, devenue inutile.

Vous allez voir que cela n'est guère compliqué. Commençons !

Rebasculez en mode création ().
Activez la zone de liste et sélectionnez l'onglet Evénement. Cet onglet est uniquement utilisé pour associer des macros ou du code à des actions. Celle qui nous intéresse se nomme Après mise à jour (ce qui signifie, dans le cas présent, après sélection). Cliquez sur ... et choisissez Générateur de macro et validez.

Access vous invite à nommer votre macro. Que pensez-vous de AtteindreClient ? Tapez ce nom et validez.

On peut le dire : la fenêtre de conception de macro est pour le moins... extrêmement dépouillée !
Elle comporte 2 colonnes : Action et description (que nous n'utiliserons pas et qui sert à documenter votre macro) et une zone Arguments de l'action, en bas de l'écran, pour l'instant inactive.

Cliquez dans la cellule Action et repérez la petite flèche. Activez-la. Vous accédez à présent à la liste des actions possibles. Celle qui nous intéresse (cf. notre petit cahier des charges ci-dessus) est OuvrirFormulaire. Sélectionnez-la : la zone inférieure de votre écran affiche à présent un masque complémentaire comportant plusieurs lignes.

La zone inférieure, complétée

La zone inférieure, complétée

Positionnez votre curseur sur la ligne Nom formulaire et activez la liste déroulante : sélectionnez le formulaire que vous souhaitez ouvrir grâce à votre macro. En l'occurrence, il s'agit de Clients.
Laissez le mode Affichage positionné sur Formulaire.
Positionnez votre curseur sur le champ Conditions where et cliquez sur le générateur d'expression (...).
Il va en effet falloir indiquer à Access quel champ de la table Clients nous souhaitons mettre en correspondance avec l'élément de notre liste. Le générateur est là pour nous aider à nous souvenir du nom de chacun des champs à mettre en relation, ce qui n'es pas toujours si évident.

Le générateur d'expression reprend l'arborescence de la base de données (tables, requêtes, formualires...). Puisque nous souhaitons mettre en relation deux formulaires, commençons par double-cliquer sur l'icône Formulaires puis Tous les formulaires.
Repérez le formulaire Clients et double-cliquez dessus. Le champ de liaison étant Code client, double-cliquez dessus : la formule Formulaires![Clients]![Code client] apparaît dans la zone de texte située au-dessus. Conservez seulement la partie [Code client] et saisissez =.

Le générateur d'expression

A présent, double-cliquez, dans la zone de gauche, sur le formulaire RechercherClient, puis sur le champ Code client de ce formulaire.

Notre formule définitive est donc : [Code client]= Formulaires![RechercherClient]![Code client] . En d'autres termes : on ouvre le formulaire Clients en positionnant le curseur sur la fiche dont le champ Code client corresponde au champ Code client du formulaire RechercheClient. Vous verrez, on s'y fait...

Cliquez sur Ok pour revenir dans la macro. Dans le champ Mode données, saisissez Modification.
A présent, il ne nous reste plus qu'à refermer la boîte de dialogue RechercheClient...

Retournez dans la grille Action. Sur la seconde ligne, sélectionnez Fermer.
Dans la partie inférieure de l'écran, complétez Type d'objet en précisant que vous souhaitez refermer un Formulaire. Sur la ligne suivante, sélectionnez son nom (RechercheClient) et sélectionnez la valeur Non dans le champ Enregistrer (le formulaire Rechercheclient n'a pas à être sauvegardé entre chaque utilisation car il ne sert qu'à sélectionner un enregistrement).

Fermez la fenêtre de macro () en sauvegardant. Vous regagnez alors le formulaire RechercheClient. Sauvegardez-le et passez en mode Affichage. Sélectionnez un élément de la liste. A présent, tout devrait fonctionner parfaitement...

Hum, vous êtes doué ! Mais il est probable que vous ayez souvent à lancer une recherche depuis le formulaire Clients lui-même... Un petit bouton ouvrant la boîte de dialogue serait donc le bienvenu, non ? Voyons voir...

Haut

Niveau

Pré-requis :

  • Aucun