Utilisation de champs Liste de choix et de champs à plusieurs valeurs dans des requêtes

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Dans Access, vous pouvez créer un champ à plusieurs valeurs contenant plusieurs valeurs (jusqu’à 100). Vous pouvez également créer un champ Liste de choix qui affiche une valeur conviviale liée à une valeur dans une autre source de données. Lorsque vous interrogez un champ Liste de choix ou à plusieurs valeurs, des considérations uniques se produisent. Pour plus d’informations, consultez Créer ou supprimer un champ à plusieurs valeurs et Créer ou supprimer un champ Liste de choix.

Contenu de cet article

Afficher la valeur liée d’un champ Liste de choix dans une requête

La valeur d’affichage d’un champ Liste de choix s’affiche automatiquement en mode Feuille de données de requête par défaut. Lorsque vous créez une requête, vous pouvez remplacer ce comportement afin que la valeur liée soit affichée à la place. Dans cet exemple, supposons que vous souhaitiez afficher la valeur liée d’un champ Liste de choix dans une table Siège qui « recherche » un nom d’État de la Nouvelle-Angleterre.

Tables de champs Liste de choix

  1. Ouvrez la requête en mode Création.

  2. Dans cet exemple, ajoutez les tables Siège social et Nouvelle-Angleterre .
    Les deux tables doivent être jointes.

    Schéma du champ Liste de choix

    Pour plus d’informations, consultez Joindre des tables et des requêtes.

  3. Faites glisser le champ A avec le champ Liste de choix vers la grille de création de requête. Dans cet exemple, ajoutez le champ Ville et NEState .

  4. Cliquez sur le champ Liste de choix, puis dans l’onglet Création , dans le groupe Afficher/Masquer , cliquez sur Feuille de propriétés. Dans cet exemple, utilisez le champ NEState .

  5. Dans la feuille de propriétés, sélectionnez l’onglet Liste de choix , puis, dans la propriété Contrôle d’affichage , sélectionnez Zone de texte.
    Propriété Afficher le contrôle en mode Création de requête

Résultat Désormais, lorsque vous affichez la requête en mode Feuille de données, vous voyez la valeur liée correspondante de la valeur d’affichage.

Le résultat de la requête affiche la valeur Bound, en haut de la page

Utiliser la valeur d’affichage d’un champ Liste de choix dans une requête

Lorsque vous créez un champ Liste de choix, une jointure est créée entre la valeur Limite et la valeur Afficher. Bien que vous ne puissiez pas utiliser directement la valeur Afficher dans une requête, vous pouvez utiliser la valeur correspondante à partir de l’autre source de données. Dans cet exemple, supposons que vous vouliez utiliser la valeur d’affichage du champ Liste de choix ( NEState) dans la table Siège social d’une requête en tant que critères.

  1. Ouvrez la requête en mode Création.

  2. Dans cet exemple, ajoutez les tables Siège social et Nouvelle-Angleterre .
    Les deux tables doivent être jointes. Pour plus d’informations, consultez Joindre des tables et des requêtes.

  3. Faites glisser les champs à utiliser dans la grille de requête. Dans cet exemple, faites glisser City de la table Headquarters(le) vers la première colonne, NEState de la table Headquarters(-trice) vers la deuxième colonne et StateName de la table NewEngland vers la troisième colonne.

  4. Désactivez la case à cocher Afficher la case activée du nom d’État dans la grille de requêtes.

  5. Dans la grille de requête, sous StateName, dans la ligne Critères, entrez Vermont.

    Grille de requête qui affiche la valeur liée d’un champ Liste de choix

    Les critères de requête sont basés sur la colonne StateName , qui est bien sûr la même valeur que la valeur d’affichage, NEState, mais qui n’est pas affichée en mode Feuille de données.

  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Seule la ligne contenant Vermont est affichée.

Résultats de la requête Haut de la page

Utiliser un champ à plusieurs valeurs dans une requête

Lorsque vous affichez un champ à plusieurs valeurs dans une requête, vous pouvez afficher le champ à plusieurs valeurs complet contenant toutes les valeurs séparées par des virgules sur une ligne ou aplatir les données avec une ligne distincte pour chaque valeur. Par exemple, supposons que vous ayez une table Problèmes contenant un champ Titre pour chaque problème et un champ à plusieurs valeurs AssignedTo pour affecter des problèmes à des personnes.

Afficher toutes les valeurs d’un champ à plusieurs valeurs sur une ligne

  1. Ouvrez la requête en mode Création.
  2. Dans cet exemple, ajoutez la table Problèmes .
  3. Faites glisser les champs vers la grille de création de requête. Dans cet exemple, faites glisser le champ Titre et le champ à valeurs multiples AssignedTo .
  4. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Comme vous pouvez vous y attendre, une colonne affiche le champ Titre et la seconde le champ à plusieurs valeurs AssignedTo :

Requête de champs à plusieurs valeurs avec résultats non aplatis Afficher chaque valeur d’un champ à plusieurs valeurs sur une ligne (affichage aplati)

  1. Ouvrez la requête en mode Création.
  2. Dans cet exemple, ajoutez la table Problèmes .
  3. Faites glisser les champs que vous avez dans la grille d’interrogation. Dans cet exemple, faites glisser le champ Titre et le champ à valeurs multiples AssignedTo.Value .
    Le format, <Fieldname>. Value, ajoute la propriété Value en tant que chaîne . Valeur du champ AssignedTo .
  4. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Les données sont aplaties de sorte que le champ Titre se répète et que chaque valeur du champ à plusieurs valeurs Assigné à s’affiche dans une ligne correspondante :

Requête de champs à plusieurs valeurs avec résultats aplatis Haut de la page

Ajouter des critères à un champ à plusieurs valeurs dans une requête

Le placement des mêmes critères dans la grille de requête dans différentes colonnes de grille a un impact important sur les résultats de votre requête.

Ajouter un critère qui affiche toutes les valeurs d’un champ à plusieurs valeurs sur une ligne

Access crée d’abord un jeu de résultats, puis ajoute les critères.

  1. Ouvrez la requête en mode Création.

  2. Dans cet exemple, ajoutez la table Problèmes .

  3. Faites glisser les champs que vous avez dans la grille d’interrogation. Dans cet exemple, faites glisser les champs Titre , AssignéÀ à valeurs multiples et Assignéà.Valeur .

  4. Désactivez la case Afficher case activée de la valeur AssignedTo.Value dans la grille de requête.

  5. Dans la grille de requête, sous AssignedTo.Value, dans la ligne Critères , entrez « NOT « David Hamilton ».

    Grille de création de requête avec champ Liste de choix simple

    Il est utile de voir la vue SQL :
    SELECT Title, AssignedTo FROM Issues WHERE NOT AssignedTo.Value = "David Hamilton";

  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Les trois problèmes non attribués à David Hamilton sont affichés dans une valeur par défaut.

Résultats pour un champ à plusieurs valeurs avec <Nom du champ> Ajouter des critères qui affichent chaque valeur d’un champ à plusieurs valeurs sur une ligne (affichage aplati)

Access crée d’abord un jeu de résultats aplati, puis ajoute les critères.

  1. Ouvrez la requête en mode Création.

  2. Dans cet exemple, ajoutez la table Problèmes .

  3. Faites glisser les champs que vous avez dans la grille d’interrogation. Dans cet exemple, faites glisser le champ Titre et le champ à valeurs multiples AssignedTo.Value .

  4. Dans la grille de requête, sous AssignedTo.Value, dans la ligne Critères , entrez NOT « David Hamilton ».

    Création de grille de requête avec . Format de valeur pour le champ Liste de choix

    Il est utile de voir la vue SQL :
    SELECT Issues.Title, AssignedTo.Value FROM Issues WHERE NOT AssignedTo.Value = "David Hamilton"

  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Chaque problème non attribué à David Hamilton est affiché dans une valeur aplatie.

Résultats pour un champ à plusieurs valeurs avec <Nom du> champ. Valeur Haut de la page

Ajouter plusieurs critères à un champ à plusieurs valeurs dans une requête

Vous devez parfois rechercher une correspondance sur plusieurs valeurs dans un champ à plusieurs valeurs. Par exemple, supposons que vous vouliez voir les problèmes dans lesquels « Kelly Rollin » et « Lisa Miller » figurent parmi les valeurs du champ AssignedTo

  1. Ouvrez la requête en mode Création.
  2. Dans cet exemple, ajoutez la table Problèmes .
  3. Faites glisser les champs que vous avez dans la grille d’interrogation. Dans cet exemple, faites glisser le champ Titre et le champ à valeurs multiples AssignedTo .
  4. Dans la grille de requête, sous AssignedTo, dans la ligne Critères , entrez « Kelly Rollin » ET « Lisa Miller ».
  5. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Ces deux numéros qui sont assignés à « Kelly Rollin » et « Lisa Miller » sont affichés.

Résultats de la requête affichant l'utilisation de l'opérateur AND dans un champ à plusieurs valeurs

Haut de la page

Groupement et comptage d’un champ à plusieurs valeurs dans une requête

Pour effectuer des calculs, regrouper et trier des valeurs stockées dans un champ à plusieurs valeurs, utilisez le <champ Fieldname>. champ Valeur. Pour plus d’informations sur les requêtes de groupe, voir Compter les données à l’aide d’une requête.

Pour compter le nombre de problèmes attribués à chaque personne

  1. Ouvrez la requête en mode Création.
  2. Dans cet exemple, ajoutez la table Problèmes .
  3. Faites glisser les champs à utiliser dans la grille de requête. Dans cet exemple, faites glisser Attribué à.Valeur vers la première colonne et Titre vers la deuxième colonne.
  4. Sous l’onglet Création , dans le groupe Afficher/Masquer , cliquez sur Totaux.
    La ligne Total s’affiche dans la grille de requête. Grouper par apparaît par défaut dans la cellule Total sous chaque champ de la requête.
  5. Dans la grille de requête, sous Titre, dans la ligne Total , cliquez sur Nombre.
  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Le nombre de problèmes attribués par personne est affiché dans une vue aplatie.

Requête dénombrant les problèmes affectés à chaque personne

Pour compter le nombre de personnes affectées à chaque problème

  1. Ouvrez la requête en mode Création.
  2. Dans cet exemple, ajoutez la table Problèmes .
  3. Faites glisser les champs à utiliser dans la grille de requête. Dans cet exemple, faites glisser Titre vers la première colonne, puis Faites glisser Affecté à vers la deuxième colonne.
  4. Sous l’onglet Création , dans le groupe Afficher/Masquer , cliquez sur Totaux.
    La ligne Total s’affiche dans la grille de requête. Grouper par apparaît par défaut dans la cellule Total sous le champ Titre de la requête. L’expression apparaît par défaut dans la cellule Total sous le champ AssignedTo, car vous ne pouvez pas effectuer d’opération Grouper par directement sur un champ à plusieurs valeurs, mais uniquement sur un <champ NomChamp>. champ Valeur.
  5. Dans la grille de requête, sous Affecté à, dans la ligne Total , cliquez sur Nombre.
  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Résultat Le nombre de personnes affectées par problème est affiché dans une vue aplatie.

Résultats de la requête indiquant le nombre de personnes par problème

Haut de la page

Utiliser une requête Ajout avec un champ à plusieurs valeurs

Vous pouvez insérer une valeur unique dans un champ à plusieurs valeurs à l’aide d’une requête Ajout. Par exemple, supposons que vous souhaitiez ajouter « David Michael » au champ à valeurs multiples AssignedTo de la table Problèmes.

Remarque C’est le seul type de requête Ajout qui fonctionne avec un champ à plusieurs valeurs.

  1. Ouvrez la requête en mode Création.
  2. Ajoutez la table Problèmes .
  3. Dans l’onglet Création , cliquez sur Ajouter.
  4. Dans la boîte de dialogue Ajouter , sélectionnez Problèmes, puis cliquez sur OK.
  5. Dans la ligne Ajouter à de la grille de création, sélectionnez AssignedTo.Value.
  6. Dans la ligne Champ de la grille de création, entrez « Tom Michaels ».
  7. Pour limiter l’opération d’ajout à des problèmes spécifiques, ajoutez un champ à la grille de création, tel que Titre, supprimez Titre de la ligne Ajouter à , puis entrez des critères tels que « Problème 3 ».
  8. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.
    Access peut vous demander de confirmer l’ajout ou non de la ligne sélectionnée. Cliquez sur Oui pour insérer la ligne ou sur Non pour annuler.

Résultat « Tom Michaels » est désormais ajouté au champ AssignedTo pour le problème 3.

Important Vous ne pouvez pas utiliser une requête Ajout faisant référence à une table contenant un champ à plusieurs valeurs. Par exemple, la requête suivante n’est pas valide :

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

Haut de la page

Utiliser une requête Mise à jour avec un champ à plusieurs valeurs

Vous pouvez utiliser une requête Mise à jour pour remplacer une valeur unique d’un champ à plusieurs valeurs par une autre valeur. Dans cet exemple, vous souhaitez mettre à jour le champ à plusieurs valeurs AssignedTo pour remplacer « Kelly Rollin » par « Lisa Miller ».

  1. Ouvrez la requête en mode Création.
  2. Ajoutez la table Problèmes .
  3. Dans l’onglet Création , cliquez sur Mettre à jour.
  4. Faites glisser AssignedTo.Value vers la grille de requête.
  5. Dans la ligne Mettre à jour vers , entrez « Lisa Miller ».
  6. Dans la ligne Critères , entrez « Kelly Rollin ».
  7. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.
    Access peut vous demander de confirmer l’ajout ou non de la ligne sélectionnée. Cliquez sur Oui pour insérer la ligne ou sur Non pour annuler.

Résultat Lisa Miller remplace Kelly Rollin dans le champ AssignedTo pour tous les problèmes correspondants.

Haut de la page

Utiliser une requête Supprimer avec un champ à plusieurs valeurs

Lorsque vous utilisez une table qui contient un champ à plusieurs valeurs, vous pouvez utiliser une requête Suppression pour supprimer les enregistrements qui contiennent une valeur particulière dans un champ à plusieurs valeurs ou pour supprimer une valeur particulière d’un champ à plusieurs valeurs dans tous les enregistrements de la table. Dans l’exemple suivant, supposons que vous souhaitiez supprimer « David Hamilton » de la table des problèmes.

Important Lorsque vous utilisez une requête Suppression pour supprimer un champ à plusieurs valeurs qui contient des données, vous perdez ces données définitivement. Vous ne pouvez pas annuler la suppression. Pour cette raison, vous devez sauvegarder votre base de données avant de supprimer des champs de tableau ou d’autres composants de base de données.

Pour supprimer une valeur particulière d’un champ à plusieurs valeurs dans tous les enregistrements

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.
  2. Ajoutez la table Problèmes .
  3. Ouvrez la requête en mode Création.
  4. Dans l’onglet Création , cliquez sur Supprimer.
  5. Dans la ligne Critères , entrez « David Hamilton ».
  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.
    Access peut vous demander de confirmer la suppression ou non des enregistrements. Cliquez sur Oui pour supprimer les enregistrements ou sur Non pour annuler.

Résultat David Hamilton est retiré pour tous les problèmes correspondants.

Supprimer les enregistrements d’un champ à plusieurs valeurs qui contiennent une valeur particulière

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.

  2. Ajoutez la table Problèmes .

  3. Ouvrez la requête en mode Création.

  4. Dans l’onglet Création , cliquez sur Supprimer le groupe.

  5. Dans l’onglet Création , dans le groupe Résultats , cliquez sur la flèche sous Affichage , puis cliquez sur Mode SQL.

  6. Entrez l’instruction SQL suivante :

    DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));
    

    Remarque Dans ce cas, vous pouvez uniquement utiliser une instruction SQL, et non la grille de création. Si vous passez à l’affichage Création grille, Access ajoute un astérisque (*) après l’instruction DELETE, que vous devez supprimer du mode SQL.

  7. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.
    Access peut vous demander de confirmer la suppression ou non des enregistrements. Cliquez sur Oui pour supprimer les enregistrements ou sur Non pour annuler.

Résultat Tous les problèmes pour lesquels David Hamilton est affecté sont supprimés.

Haut de la page