Microsoft Office Online
Se connecter à Mon site Office Online (Qu'est-ce que c'est ?) | Se connecter

 
 
Microsoft Office Access
Rechercher
Rechercher
 
Acheter Office
Acheter et activer Office
 
 
 
Avertissement : vous affichez cette page avec un navigateur Web non pris en charge. Ce site Web fonctionne de manière optimale avec Microsoft Internet Explorer 6.0 ou version ultérieure, Firefox 1.5 ou Netscape Navigator 8.0 ou version ultérieure. En savoir plus sur les navigateurs pris en charge.

Utiliser des paramètres dans les requêtes et les états
 

Les requêtes sont utiles pour travailler uniquement avec les champs d'une table qui concernent la tâche en cours. Pour restreindre davantage les données, d'après la valeur contenue dans un champ, vous pouvez utiliser des critères dans votre requête. Les critères sont des règles que vous incluez dans la structure d'une requête ; ces règles spécifient des valeurs ou des modèles que les champs doivent contenir, intégralement ou non, pour être renvoyés par la requête.

Lorsque vous souhaitez qu'une requête vous demande une valeur ou un modèle chaque fois que vous l'exécutez, vous pouvez créer une requête Paramètre (requête paramétrée : requête dans laquelle un utilisateur spécifie de façon interactive une ou plusieurs valeurs de critère. Une requête paramétrée n'est pas un type de requête distinct, mais plutôt une requête qui offre une plus grande souplesse.). Vous pouvez aussi utiliser des paramètres avec un état pour vous demander des critères lorsque vous exécutez cet état. Vous pouvez utiliser des formulaires pour faciliter la collecte et la transmission des paramètres de la requête et de l'état ; vous avez plusieurs solutions :

  • Vous autoriser à utiliser des contrôles propres au type de données
  • Permettre la préservation des valeurs des paramètres
  • Autoriser l'utilisation des contrôles de zone de liste déroulante (ce qui permet de sélectionner une valeur dans une liste au lieu de la taper)
  • Vous autoriser à utiliser les autres contrôles disponibles dans des formulaires

Cet article explique comment utiliser des paramètres dans des requêtes et des états et comment utiliser des formulaires pour optimiser l'utilisation des paramètres.

Dans cet article


Introduction

Vous pouvez utiliser des critères dans une requête Microsoft Office Access 2007 pour limiter l'ensemble d'enregistrements qu'elle renvoie. Voyez le scénario suivant.

Supposons que vous ayez une requête, appelée Dernière commande, qui renvoie les noms et adresses des clients à qui vous avez livré la dernière commande, avec la date de cette livraison. Vous venez par ailleurs de compléter votre catalogue et votre stock avec de nouveaux produits très intéressants. Chaque fois que vous livrez une commande, vous incluez une copie de votre nouveau catalogue. Vous pensez que ces nouveaux produits se vendront bien et vous voulez être sûr que vos clients les connaissent. Vous envoyez aussi ce catalogue par courrier électronique à tous les clients qui n'en ont pas encore reçu un avec une livraison.

Vous souhaitez donc créer une liste de publipostage qui contient les noms et adresses des clients dont la dernière commande a été livrée avant que le nouveau catalogue soit prêt. Pour cela, vous appliquez un critère au champ de la date de livraison de votre requête Dernière commande. Ce critère spécifie que la date du champ Date de livraison doit être antérieure à la date à laquelle vous avez commencé à distribuer le nouveau catalogue, par exemple le 31/03/2006. Lorsque vous exécutez la requête, vous obtenez une liste de publipostage qui contient uniquement les clients qui n'ont pas reçu le nouveau catalogue.

Mais si cette situation se reproduit ? Vous pourriez modifier la requête en changeant la valeur spécifiée par le critère, mais ne serait-ce pas idéal que votre requête puisse vous demander une date et l'utilise pour déterminer quels clients inclure dans la liste de publipostage ? Vous pouvez concevoir votre requête à cet effet en utilisant un type de critère spécial : un paramètre.

Vous pouvez aussi utiliser des paramètres avec des états ; cela permet aux utilisateurs de transmettre des critères à l'état lorsqu'ils l'exécutent. Cet article vous explique comment utiliser Office Access 2007 pour créer des états qui acceptent des paramètres.

Vous trouverez peut-être que les boîtes de dialogue fournies par une requête Paramètre ne sont pas suffisantes pour ce que vous souhaitez faire. Dans ce cas, vous pouvez créer un formulaire mieux adapté à vos besoins. Cet article explique comment créer un formulaire qui collecte des paramètres pour un état.

Cet article suppose que vous connaissez les principes de la création de requêtes et d'états. Vous devez au moins savoir créer une requête Sélection avant de continuer.

Pour plus d'informations sur la création d'une requête Sélection ou d'un état, voir les articles Créer une requête Sélection simple et Créer un état simple.

Cet article fournit des exemples d'utilisation des paramètres dans les requêtes et les états, mais vous n'y trouverez pas de référence détaillée pour spécifier des critères.

Pour plus d'informations sur la spécification des critères, voir l'article Exemples de critères de requête.

Haut de la page Haut de la page

Utiliser des paramètres dans des requêtes

Il est aussi simple de créer une requête Paramètre qu'une requête qui utilise des critères. Vous pouvez concevoir une requête pour demander une information, par exemple une référence de produit, ou plusieurs informations, par exemple deux dates. Pour chaque paramètre, une requête Paramètre affiche une boîte de dialogue différente, qui demande une valeur pour ce paramètre.

Créer une requête Paramètre

  1. Créez une requête Sélection, puis ouvrez cette requête en mode Création (mode Création : fenêtre qui présente la création des objets de base de données suivants : tables, requêtes, formulaires, états, macros et pages d'accès aux données. En mode Création, vous pouvez créer de nouveaux objets de base de données et modifier la structure d'objets existants.).
  2. Dans la ligne Critères d'un champ pour lequel vous voulez qu'un paramètre soit appliqué, tapez le texte que doit afficher la boîte de dialogue du paramètre, en le plaçant dans des crochets, par exemple :

    [Pays/région d'origine :]

    Lorsque vous exécutez la requête Paramètre, ce texte apparaît dans une boîte de dialogue, sans les crochets.

  3. Répétez l'étape 2 pour chaque paramètre que doit collecter et appliquer la requête.

Vous pouvez utiliser les étapes précédentes pour créer une requête Paramètre à partir des types de requêtes suivants :

  • Sélection
  • Analyse croisée
  • Ajout
  • Création de table
  • Mise à jour

Vous pouvez également ajouter des paramètres à une requête Union. Pour cela :

  1. Ouvrez la requête Union en mode SQL.
  2. Ajoutez une clause WHERE qui contient tous les champs pour lesquels vous voulez demander un paramètre.

    S'il existe déjà une clause WHERE, vérifiez que les champs pour lesquels vous souhaitez demander un paramètre figurent déjà dans la clause ; si ce n'est pas le cas, ajoutez-les.

  3. Au lieu d'utiliser des critères dans la clause WHERE, insérez des demandes de paramètre qui utilisent la même syntaxe que pour les paramètres des autres types de requêtes.

Mise en correspondance d'une partie de la valeur d'un champ avec la chaîne d'un paramètre

Vous pouvez varier un peu la manière dont votre requête applique un paramètre. Par exemple, la requête peut accepter une chaîne de texte et la mettre en correspondance avec une partie quelconque d'un champ. Pour cela, vous pouvez utiliser le mot clé Like avec des caractères génériques. Par exemple, vous pouvez faire en sorte que la requête demande le pays/région d'origine, mais qu'elle ne le retienne que lorsque la valeur du champ contient la chaîne du paramètre. Pour cela :

  1. Créez une requête Sélection, puis ouvrez cette requête en mode Création.
  2. Dans la ligne Critères du champ pour lequel vous voulez appliquer le paramètre, tapez Like "*"&[, puis le texte à afficher, et enfin ]&"*".

    Lorsque vous exécutez la requête Paramètre, ce texte s'affiche dans la boîte de dialogue, sans les crochets, et sans le mot clé Like ni les caractères génériques.

  3. Lorsque la requête accepte le paramètre, elle trouve les valeurs qui contiennent la chaîne du paramètre. Par exemple, la chaîne us trouve les lignes où le champ du paramètre a la valeur Australie et les lignes où la valeur est USA.

Vous pouvez aussi utiliser le mot clé Like et des caractères génériques pour spécifier qu'un paramètre trouve le début ou la fin de la valeur d'un champ. Pour trouver le début d'une valeur, omettez les guillemets, le caractère générique et le Et commercial (&) qui précède le crochet ouvrant. Pour trouver la fin d'une valeur, omettez le Et commercial, les guillemets et le caractère générique qui suit le crochet fermant.

Mise en correspondance en utilisant une comparaison

Supposons que vous souhaitiez collecter un paramètre, mais qu'au lieu de demander à la requête de renvoyer les lignes contenant la valeur recherchée, vous lui demandiez de renvoyer les lignes pour lesquelles une autre comparaison donne True. Vous pourriez par exemple demander une année et renvoyer les lignes où la valeur de l'année est supérieure à la chaîne du paramètre. Pour cela, tapez un opérateur de comparaison à gauche du premier crochet qui entoure le texte à afficher, par exemple, >[Année:].

Haut de la page Haut de la page

Utiliser des paramètres dans des états

La méthode la plus simple pour créer un état qui accepte des paramètres consiste à utiliser une requête Paramètre comme source des enregistrements de l'état. Par exemple, créez un état des revenus mensuels reposant sur une requête Paramètre qui demande une valeur pour le mois. Lorsque vous exécutez ou imprimez l'état, Access affiche une boîte de dialogue qui demande le mois sur lequel l'état doit porter. Lorsque vous entrez un mois, Access affiche ou imprime l'état approprié.

Vous pouvez aussi convertir facilement un état simple reposant sur une requête Sélection en un état à base de paramètres en ajoutant des paramètres à sa requête source. Il existe deux méthodes pour y parvenir :

  • Ouvrez la requête source en mode Création, puis ajoutez des paramètres dans la ligne Critères des champs souhaités. Pour plus de détails, voir la section Utiliser des paramètres dans les requêtes.
  • Ouvrez l'état en mode Création, puis cliquez sur ... à côté de la propriété Source de l'état, pour ouvrir la requête source en mode Création. Vous pouvez alors ajouter des paramètres à cette requête, selon la procédure décrite dans la section Utiliser des paramètres dans les requêtes.
Lorsque vous avez terminé d'ajouter des paramètres à la requête source, enregistrez-la (CTRL+S) et refermez-la.

Haut de la page Haut de la page

Créer un formulaire pour collecter les paramètres de l'état

Bien que les requêtes Paramètre utilisent une boîte de dialogue intégrée pour collecter les paramètres, cela ne représente que la fonctionnalité de base. En utilisant un formulaire pour collecter les paramètres de l'état, vous pouvez tirer profit des fonctionnalités suivantes :

  • Possibilité d'utiliser des contrôles propres au type de données, tels que des contrôles de calendrier pour des dates
  • Préservation des paramètres collectés
  • Possibilité de fournir une zone de liste déroulante ou une zone de liste pour la collecte de paramètres, ce qui vous permet de choisir un élément dans une liste de valeurs de données disponibles
  • Possibilité de fournir des contrôles pour d'autres fonctions, par exemple afficher ou masquer des sections d'un état

Suivez les étapes de 1 à 7 pour créer un formulaire qui collecte des paramètres pour l'état.

Étape 1 : créer un formulaire indépendant qui demande des paramètres pour l'état

  1. Sous l'onglet Créer, dans le groupe Formulaires, cliquez sur Création de formulaire.
  2. En mode Création, appuyez sur F4 pour afficher la feuille de propriétés, puis définissez les propriétés du formulaire, comme l'indique le tableau suivant.
    Propriété Définition
    Légende Entrez le nom à afficher dans la barre de titre du formulaire.
    Affichage par défaut Formulaire unique
    Autoriser le mode Formulaire Oui
    Autoriser le mode Feuille de données Non
    Autoriser le mode Tableau croisé dynamique Non
    Autoriser le mode Graphique croisé dynamique Non
    Barres de défilement Aucune
    Sélecteurs d'enregistrement Non
    Boutons de navigation Non
    Style de bordure Dimensionnable

  3. Pour chaque paramètre que doit collecter le formulaire, cliquez sur Zone de texte dans le groupe Contrôles de l'onglet Créer.
  4. Définissez les propriétés des zones de texte, comme dans le tableau suivant.
    Propriété Définition
    Nom Entrez un nom qui décrit le paramètre, par exemple DateDébut.
    Format Choisissez un format représentatif du type de données du champ du paramètre. Par exemple, sélectionnez Date, réduit pour un champ de date.

  5. Enregistrez le formulaire et donnez-lui un nom, par exemple Collecte de paramètres.

     Remarque   Cet exercice utilise Collecte de paramètres comme nom du formulaire. En suivant ces instructions, utilisez le nom que vous avez donné à votre formulaire de paramètres à la place de Collecte de paramètres.

Étape 2 : créer un module contenant une fonction qui vérifie si un formulaire est déjà chargé

  1. Sous l'onglet Créer, dans le groupe Autre, cliquez sur Module. Si cette commande n'est pas disponible, cliquez sur la flèche sous le bouton Macro ou Module de classe, puis cliquez sur Module.

    Un nouveau module s'ouvre dans Visual Basic Editor.

  2. Tapez ou collez le code suivant dans Visual Basic Editor :

    Function IsLoaded(ByVal strFormName As String) As Boolean
    
    Dim oAccessObject As AccessObject
    Set oAccessObject = CurrentProject.AllForms(strFormName)
    
    If oAccessObject.IsLoaded Then
      If oAccessObject.CurrentView <> acCurViewDesign Then
        IsLoaded = True
      End If
    End If
    

Étape 3 : créer un groupe de macros qui contrôle le formulaire Collecte de paramètres

  1. Sous l'onglet Créer, dans le groupe Autre, cliquez sur Macro. Si cette commande n'est pas disponible, cliquez sur la flèche sous le bouton Module ou Module de classe, puis cliquez sur Macro.
  2. Sous l'onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Afficher toutes les actions.
  3. Sous l'onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Noms de macro pour afficher la colonne Nom de la macro.
  4. Tapez un nom de macro, par exemple Boîte de dialogue Ouvrir, dans la colonne Nom de la macro.
  5. Dans la colonne Action, cliquez dans la cellule à côté du nom de la nouvelle macro et cliquez sur la flèche de la liste déroulante, puis sur OuvrirFormulaire.
  6. Dans la grille Arguments de l'action (sous la grille de création de macro), définissez les arguments de l'action (argument de l'action : informations supplémentaires requises par certaines actions de macro (par exemple, l'objet affecté par l'action ou les conditions particulières sous lesquelles l'action est exécutée).), comme l'indique le tableau suivant.
    Argument Définition
    Nom de formulaire Entrez le nom que vous avez donné à votre formulaire de paramètres de l'état.
    Affichage Formulaire
    Mode Données Modification
    Mode Fenêtre Boîte de dialogue

  7. Dans la prochaine cellule Action, cliquez sur AnnulerEvénement pour ajouter une deuxième action. Cette action servira à annuler l'aperçu ou l'impression de l'état lorsqu'un utilisateur cliquera sur le bouton Annuler du formulaire.
  8. Si la colonne Condition n'est pas affichée, cliquez sur Conditions dans le groupe Afficher/Masquer de l'onglet Créer.
  9. Dans la colonne Condition, tapez Not IsLoaded, puis une parenthèse ouvrante et un guillemet, suivis du nom que vous avez donné à votre formulaire de collecte de paramètres, et enfin un guillemet et une parenthèse fermante. Par exemple, si votre formulaire s'appelle Collecte de paramètres, tapez Not IsLoaded("Collecte de paramètres").
  10. Dans la prochaine ligne vide de la grille de création de macro, tapez un nom pour la nouvelle macro, par exemple Boîte de dialogue Fermer.
  11. Dans la cellule Action adjacente, cliquez sur la flèche de la liste déroulante, puis sur Fermer. Cette action sera utilisée par l'état pour refermer le formulaire de collecte de paramètres. Définissez les arguments de l'action, comme l'indique le tableau suivant.
    Argument Définition
    Type d'objet Formulaire
    Nom d'objet Entrez le nom que vous avez donné à votre formulaire de paramètres de l'état.
    Enregistrer Non

  12. Dans la prochaine ligne vide de la grille de création de macro, tapez un nouveau nom de macro, par exemple OK. Dans la cellule Action adjacente, cliquez sur la flèche de la liste déroulante, puis cliquez sur DéfinirValeur. Cette action sera utilisée pour masquer le formulaire de paramètres de l'état lorsque l'utilisateur cliquera sur OK. Définissez les arguments de l'action, comme l'indique le tableau suivant.
    Argument Définition
    Élément [Visible]
    Expression Non
  13. Dans la prochaine ligne vide de la grille de création de macro, tapez un nouveau nom de macro, par exemple Annuler. Dans la cellule Action adjacente, cliquez sur la flèche de la liste déroulante, puis cliquez sur Fermer. Cette action sera utilisée pour fermer le formulaire de paramètres de l'état lorsque l'utilisateur cliquera sur Annuler. Définissez les arguments de l'action, comme l'indique le tableau suivant.
    Argument Définition
    Type d'objet Formulaire
    Nom d'objet Entrez le nom que vous avez donné à votre formulaire de paramètres de l'état.
    Enregistrer Non

  14. Enregistrez et fermez le groupe de macros. Attribuez-lui un nom, par exemple, Collecte de paramètres.

Étape 4 : ajouter les boutons OK et Annuler au formulaire

  1. Rouvrez le formulaire Collecte de paramètres en mode Création.
  2. Vérifiez que Utiliser les Assistants contrôle, dans le groupe Contrôles de l'onglet Créer n'est pas sélectionné.
  3. Sous l'onglet Créer, dans le groupe Contrôles, cliquez sur Bouton.
  4. Placez le pointeur sous les zones de texte de votre formulaire, puis faites glisser la souris pour créer un bouton de commande OK.
  5. Si la feuille de propriétés n'est pas visible, appuyez sur F4 pour l'afficher.
  6. Définissez les propriétés du bouton OK, comme l'indique le tableau suivant.
    Propriété Définition
    Nom OK
    Légende OK
    Valeur par défaut Oui
    SurClic Entrez le nom de la macro, par exemple Collecte de paramètres.OK.

  7. Créez un bouton de commande Annuler et définissez ses propriétés, comme l'indique le tableau suivant.
    Propriété Définition
    Nom Annuler
    Légende Annuler
    SurClic Entrez le nom de la macro, par exemple Collecte de paramètres.Annuler.

  8. Enregistrez et fermez le formulaire.

Étape 5 : entrer les critères dans la requête ou la procédure stockée sous-jacente de l'état

  1. Ouvrez la requête ou la procédure stockée sous-jacente de l'état en mode Création.
  2. Entrez les critères à appliquer aux données. Dans l'expression (expression : toute combinaison d'opérateurs mathématiques ou logiques, de constantes, de fonctions, de noms de champs, de contrôles et de propriétés qui s'évalue pour donner une seule valeur. Les expressions peuvent réaliser des calculs, manipuler des caractères ou tester des données.), utilisez l'objet Forms, le nom du formulaire et les noms des contrôles (contrôle : objet d'interface utilisateur graphique, comme une zone de texte, une case à cocher, une barre de défilement ou un bouton de commande, qui permet aux utilisateurs de contrôler le programme. Vous pouvez utiliser des contrôles pour afficher des données ou des choix, effectuer une action ou rendre l'interface utilisateur plus lisible.) dans les critères :

Étape 6 : dans un projet Access, définir la propriété ParamètresSaisie dans l'état principal

  1. Ouvrez l'état en mode Création.
  2. Attribuez à la propriété ParamètresSaisie une chaîne qui spécifie les paramètres passés à la procédure stockée à laquelle l'état est lié.

    Comme le montre l'exemple suivant, la chaîne doit être une expression qui inclut les paramètres que vous avez spécifiés dans la procédure stockée et la référence aux contrôles dans la boîte de dialogue :

    @Date_de_début datetime = [Forms]![Collecte de paramètres]![Date de début], @Date_de_fin datetime = [Forms]![Collecte de paramètres]![Date de fin]

Étape 7 : attacher les macros à l'état principal

  1. Ouvrez l'état en mode Création.
  2. Si la feuille de propriétés n'est pas visible, appuyez F4 sur l'afficher.
  3. Définissez les propriétés de l'état, comme l'indique le tableau suivant.
    Propriété Définition
    SurOuverture Tapez le nom de la macro qui ouvre le formulaire, par exemple Collecte de paramètres.Boîte de dialogue Ouvrir.
    SurFermeture Tapez le nom de la macro qui ferme le formulaire, par exemple Collecte de paramètres.Boîte de dialogue Fermer.

Haut de la page Haut de la page

publicité