ACC2002 : procédure pour utiliser des listes modifiables paramétrées dans un projet Access

Traductions disponibles Traductions disponibles
Numéro d'article: 281870 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F281870
Utilisateurs avertis : cet article requiert des compétences élémentaires en termes de macros, programmation et interopérabilité.

Cet article ne s'applique qu'aux projets Microsoft Access (.adp).

Agrandir tout | Réduire tout

Sommaire

Résumé

Les zones de listes modifiables, ou listes modifiables, sont une bonne méthode pour présenter une liste de choix à un utilisateur. Si le contenu de ligne d'une liste modifiable doit être basé sur un sous-ensemble d'enregistrements provenant d'une table ou d'une requête, vous pouvez ajouter une clause WHERE pour limiter les choix.

L'exemple décrit dans cet article ajoute une liste modifiable au formulaire Clients dans l'exemple de projet NorthwindCS.adp. La liste modifiable répertorie les commandes passées par le client actif. Après avoir été sélectionné, le formulaire Commandes affiche les détails de la commande sélectionnée.

Vous disposez de quatre méthodes différentes pour produire la liste des commandes correspondantes passées par un client. Ces méthodes utilisent un projet Access (.adp) avec Microsoft SQL Server 2000 comme source de données. Elles sont décrites dans la section qui suit.

Plus d'informations

Création de la liste modifiable



Cette section vous montre comment créer d'abord une liste modifiable sur le formulaire Clients, qui affiche la liste des commandes du client actif.
  1. Ouvrez le formulaire Clients dans la vue Conception.
  2. Dans la boîte à outils, cliquez sur Assistants de Contrôle, puis ajoutez une liste modifiable au formulaire.
  3. Sur la première page de l'Assistant, sélectionnez une recherche des valeurs dans une table ou une requête, puis cliquez sur Suivant.
  4. Sur la deuxième page de l'Assistant, cliquez sur la table Commandes, puis sur Suivant.
  5. Sur la troisième page de l'Assistant, ajoutez N° commande, N° client et Date commande sous forme de champs dans la liste modifiable, puis cliquez sur Suivant.
  6. Sur la quatrième page de l'Assistant, désactivez la case à cocher Colonne clé cachée, puis réduisez la colonne N° client de façon à ce qu'elle ne soit plus visible. Cliquez sur Suivant.
  7. Sur la cinquième page de l'Assistant, cliquez à nouveau sur Suivant pour accepter N° commande comme champ à mémoriser ou à utiliser dans votre base de données.
  8. Sur la sixième page de l'Assistant, sélectionnez la mémorisation de la valeur pour usage ultérieur, puis cliquez sur Suivant.
  9. Sur la dernière page de l'Assistant, libellez la liste modifiable Sélectionner une commande, puis cliquez sur Terminer.
  10. Ouvrez la feuille de propriétés de la liste modifiable, puis renommez la liste modifiable SelectOrderCombo.
  11. Paramétrez la propriété Sur Clic de la liste modifiable sur la procédure suivante :
    Private Sub SelectOrderCombo_Click()
    On Error GoTo Err_SelectOrderCombo_Click
        Dim stDocName As String
        Dim stDocName As String
        stDocName = "Commandes"
        stLinkCriteria = "[N° commande]=" & Me![SelectOrderCombo]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Exit_SelectOrderCombo_Click:
        Exit Sub
    Err_SelectOrderCombo_Click:
        MsgBox Err.Description
        Resume Exit_SelectOrderCombo_Click
    End Sub

Ajout du code pour actualiser la liste modifiable



Cette section décrit les méthodes que vous pouvez utiliser pour actualiser la liste modifiable. Sélectionnez l'une des quatre méthodes ci-après, puis ajoutez le code approprié à l'événement Sur Entrée de la liste modifiable.

Pour les méthodes 1 et 2, à chaque fois que la liste modifiable est sélectionnée, l'événement Sur Clic réinitialise le contenu de ligne de la liste modifiable pour n'afficher que les commandes qui correspondent au client actif.

REMARQUE : le champ N° client étant un champ texte, des guillemets simples (') doivent être chaînés autour de la référence Formulaires. Par exemple, la clause WHERE générée est convertie de :
WHERE CustomerID = '" & Forms![Customers]![CustomerID] & "'"
en :
WHERE CustomerID = 'ALFKI'

Méthode 1 : Utilisation d'une sélection ad hoc



Paramétrez la propriété Sur Entrée de la liste modifiable sur la procédure suivante :
Me.SelectOrderCombo.RowSource = "SELECT LES 100 POUR-CENT SUPÉRIEURS OrderID, CustomerID, OrderDate FROM Orders WHERE " _
     & "CustomerID = '" & Forms![Customers]![CustomerID] 
& "' ORDER BY OrderDate DESC"

Méthode 2 : Utilisation d'une vue SQL Server



  1. Créez une nouvelle vue dans le Concepteur de vues, puis sélectionnez les champs N° commande, N° client et Date commande dans la table Commandes. Pour trier la liste de commandes de la plus récente à la plus ancienne, paramétrez le Type de tri pour le champ Date commande sur Décroissant.
  2. Enregistrez la vue sous vwCustomerOrders.
  3. Paramétrez la propriétéSur Entréede la liste modifiable sur la procédure suivante :
    Me.SelectOrderCombo.RowSource = "SELECT * FROM vwCustomerOrders WHERE CustomerId 
    = '" & Forms![Customers]![CustomerID] & "'"
Pour les méthodes 3 et 4, la méthode d' Actualisation est appelée à l'événement Sur Entrée pour ré-exécuter une procédure mémorisée ou une fonction SQL pour retourner les enregistrements correspondants. Dans ces exemples, le Paramètre est défini comme un contrôle du formulaire à l'aide de @ControlName dans les critères. Access évalue automatiquement les critères et demande les enregistrements correspondants.

Dans les exemples ci-après, la liste modifiable retourne une liste de toutes les commandes pour le client actif. La zone de texte N° client contenant le N° du client actif, vous pouvez référencer directement la zone de texte N° client dans les critères de la procédure mémorisée ou de la fonction SQL.

Méthode 3 : Utilisation d'une procédure mémorisée SQL Server



  1. Créez une nouvelle procédure dans le concepteur graphique.
  2. Sélectionnez la table Commandes, puis ajoutez les champs N° commande, N° client et Date commande à la procédure mémorisée.
  3. Entrez @CustomerID comme critère du champ N° client, et triez le champ Date commande dans l'ordre décroissant.
  4. Enregistrez la procédure mémorisée sous spCustomerOrders, puis refermez-la.
  5. Définissez la procédure mémorisée spCustomerOrders comme contenu de ligne pour la liste modifiable.

    REMARQUE : l'instruction SQL suivante est créée et enregistrée par le Concepteur de procédures mémorisées :
    CREATE PROCEDURE dbo.spCustomerOrders
      (@CustomerID varchar(5))
      AS SELECT OrderID, CustomerID, OrderDate
      WHERE   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC
  6. Paramétrez la propriété Sur Entrée de la liste modifiable sur la procédure suivante :
    Me.SelectOrderCombo.Requery

Méthode 4 : Utilisation d'une fonction SQL Server 2000



Vous ne pouvez utiliser cette méthode que si le projet Access utilise SQL Server 2000 ou une version ultérieure comme source de données.
  1. Créez une fonction dans le concepteur graphique.
  2. Sélectionnez la table Commandes, puis ajoutez les champs N° commande, N° client et Date commande à la procédure mémorisée.
  3. Entrez @CustomerID comme critère du champ N° client, puis triez le champ Date commande dans l'ordre décroissant.
  4. Enregistrez la fonction sous fnCustomerOrders, puis refermez-la.
  5. Définissez la fonction fnCustomerOrders comme contenu de ligne de la liste modifiable.

    REMARQUE : l'instruction SQL suivante est créée et enregistrée par le Concepteur de procédures mémorisées :
    CRÉER FONCTION dbo.spCustomerOrders
      (@CustomerID varchar(5))
      RETURNS TABLE
      RETURN ( SELECT LES 100 POUR-CENT SUPÉRIEURS OrderID, CustomerID, OrderDate
      WHERE   dbo.Orders
      WHERE  (CustomerID  = @CustomerID)
      ORDER BY OrderDate DESC )
  6. Paramétrez la propriété Sur Entrée de la liste modifiable sur la procédure suivante :
    Me.SelectOrderCombo.Requery
Pour tester ces méthodes, ouvrez le formulaire, puis sélectionnez la liste modifiable Sélectionner une commande. L'événement Sur Entrée actualise la liste modifiable en générant automatiquement une liste des commandes pour le client actif. Lorsqu'une commande est sélectionnée, l'événement Sur Clic de la liste modifiable est exécuté et le formulaire Commandes s'ouvre pour afficher la commande sélectionnée.

Propriétés

Numéro d'article: 281870 - Dernière mise à jour: jeudi 6 novembre 2003 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2002
Mots-clés : 
kbhowto accesscs KB281870
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com