Créer et exécuter une requête Suppression

Créer et exécuter une requête Suppression

Lorsque vous souhaitez supprimer rapidement un grand nombre de données ou supprimer régulièrement un jeu de données dans une base de données Access de bureau, une suppression ou une requête Mise à jour peut s’avérer utile, car les requêtes vous permet de spécifier des critères pour rechercher et supprimer rapidement les données. L’utilisation d’une requête peut également être un timesaver, car vous pouvez réutiliser une requête enregistrée.

Remarque : Avant de supprimer des données ou d’exécuter une requête Suppression, vérifiez que vous disposez d’une sauvegarde de votre base de données Access de bureau.

Si vous souhaitez seulement supprimer quelques enregistrements, vous n’avez pas besoin d’une requête. Il vous suffit d’ouvrir la table en vue Feuille de données, de sélectionner les champs (colonnes) ou enregistrements (lignes) à supprimer, puis d’appuyer sur Supprimer.

Important : Les informations de cet article sont destinées uniquement aux bases de données de bureau. Vous ne pouvez pas utiliser de requêtes Suppression ou Mise à jour dans les applications web Access.

Contenu de cet article

Choix d’un type de requête

Vous pouvez utiliser une requête Mise à jour ou Suppression pour supprimer des données de votre base de données. Sélectionnez une requête basée sur les détails du tableau suivant :

Type de requête

Utilisation

Résultats

Utiliser une requête Suppression

Pour supprimer simultanément des enregistrements entiers (lignes) d’une table ou de deux tables liées.

Remarque : Si les enregistrements résident du côté « un » d’une relation un-à-plusieurs, vous devrez peut-être modifier la relation avant d’exécuter la requête Suppression. Consultez la section relative à la suppression de données de tables liées.

Les requêtes Suppression suppriment toutes les données de chaque champ, y compris la valeur de clé qui donne son caractère unique à un enregistrement

Utiliser une requête Mise à jour

Pour supprimer des valeurs de champ individuelles d’une table.

Permet de supprimer des valeurs plus facilement en mettant à jour les valeurs existantes soit en valeur Null (autrement dit, sans données) soit en chaîne nulle (une paire de guillemets doubles sans espace entre eux).

Haut de page

Éléments à vérifier avant d’utiliser une requête pour supprimer des données

  • Assurez-vous qu’il ne s’agit pas d’un fichier en lecture seule :

    1. Cliquez avec le bouton droit sur Démarrer, puis cliquez sur Ouvrir l’Explorateur Windows.

    2. Cliquez avec le bouton droit sur le fichier de base de données, puis cliquez sur Propriétés.

    3. Voir si l’attribut Lecture seule est sélectionné.

  • Vérifiez que vous avez les autorisations nécessaires pour supprimer des enregistrements de la base de données. En cas de doute, contactez votre administrateur système ou le concepteur de la base de données.

  • Assurez-vous d’avoir activé le contenu dans la base de données. Par défaut, Access bloque toutes les requêtes Action (requêtes Supprimer, Mettre à jour et Table), sauf si vous faites d’abord confiance à la base de données. Pour plus d’informations sur l’trust d’une base de données, voir la section Désactiver le mode de blocage d’une requête.

  • Demandez aux autres utilisateurs de la base de données de fermer tous les formulaires, tables, requêtes et états qui utilisent les données que vous voulez supprimer. Cela permet d’éviter les violations de verrou.

  • Avant de modifier ou de supprimer des enregistrements, il est bon de faire une copie de sauvegarde de la base de données si vous souhaitez annuler vos modifications.

Conseil : Si un grand nombre d’utilisateurs se connectent à la base de données, vous devrez peut-être fermer la base de données, puis la rouvrir en mode Exclusif.

Pour ouvrir une base de données en mode Exclusif

  1. Cliquez sur l’onglet Fichier > Ouvrir.

  2. Accédez à la base de données et pointez-la, cliquez sur la flèche en côté du bouton Ouvrir, puis cliquez sur Ouvrir en exclusif.

    Ouverture d’un fichier en mode Exclusif

Remontez à la base de données

  1. Cliquez sur l’onglet Fichier, pointez sur Enregistrer sous.

  2. Cliquez sur Enregistrer la base de données sous,puis sur Sauvegarder la base de données. Access ferme le fichier d’origine, crée une sauvegarde, puis rouvre le fichier d’origine.

  3. Cliquez sur Enregistrer sous, spécifiez un nom et un emplacement pour la copie de sauvegarde, puis cliquez sur Enregistrer.

Remarque : Si vous utilisez une base de données en lecture seule ou créée dans la version précédente d’Access, un message peut s’ouvrir pour vous dire qu’il n’est pas possible de créer une mise à jour de la base de données.

Pour rétablir une sauvegarde, fermez et renommez le fichier d’origine de sorte que la copie de sauvegarde puisse utiliser le nom de la version d’origine. Attribuez à la copie de sauvegarde le nom de la version d’origine, puis ouvrez la copie de sauvegarde ainsi renommée dans Access.

Utilisation d’une requête Suppression

Pour créer une requête Suppression, cliquez sur l’onglet Créer. Dans le groupe Requêtes, cliquez sur Création de requête. Double-cliquez sur chaque table dont vous souhaitez supprimer les enregistrements, puis cliquez sur Fermer.

Le tableau s’affiche sous forme de fenêtre dans la partie supérieure de la grille de création de requête. Dans la liste des champs, double-cliquez sur l’astérisque(*)pour ajouter tous les champs de la table à la grille de création.

Utilisation d’un critère spécifique dans une requête Suppression

Important : Utilisez des critères pour renvoyer uniquement les enregistrements que vous souhaitez supprimer. Sinon, la requête Suppression supprime tous les enregistrement de la table.

Double-cliquez sur le champ que vous voulez spécifier comme critère pour la suppression, entrez un des critères dans la ligne Critères du Concepteur de requêtes, puis désochez la case Afficher pour chaque champ de critère.

Exemple d’utilisation de cette option : supposons que vous vouliez supprimer toutes les commandes en attente pour un client. Pour rechercher uniquement ces enregistrements, ajoutez les champs ID client et Date de commande à la grille de création de requête, puis entrez le numéro d’ID du client et la date à laquelle les commandes de ce client sont devenues non valides.

  1. Sous l’onglet Création, cliquez sur Affichage > mode Feuille de données.

  2. Vérifiez que la requête renvoie les enregistrements que vous voulez supprimer, puis appuyez sur Ctrl+S pour enregistrer la requête.

  3. Pour exécuter la requête, double-cliquez sur la requête dans le volet de navigation.

Haut de la page

Utiliser une requête Mise à jour

Remarque : Vous ne pouvez pas utiliser l’option de requête Mise à jour dans une application web Access.

Cette section explique comment utiliser une requête Mise à jour pour supprimer des champs individuels des tables. N’oubliez pas que l’exécution d’une requête Mise à jour pour supprimer des données remplacera les valeurs existantes par NULL ou une chaîne nulle (paire de guillemets doubles sans espace entre les deux), selon les critères que vous spécifiez.

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

  2. Sélectionnez la table qui possède les données à supprimer (si la table est liée, sélectionnez la table du côté « un » de la relation), cliquez sur Ajouter,puis sur Fermer.

    Le tableau s’affiche sous forme de fenêtre dans la partie supérieure de la grille de création de requête. La fenêtre répertorie tous les champs de la table sélectionnée.

  3. Double-cliquez sur l’astérisque(*)pour ajouter tous les champs de la table à la grille de création. L’ajout de tous les champs de la table permet à la requête Suppression de supprimer des enregistrements entiers (lignes) de la table.

    Vous pouvez également entrer des critères pour un ou plusieurs champs dans la ligne Critères du concepteur, puis cocher la case Afficher pour chaque champ de critère. Pour plus d’informations sur l’utilisation de critères, voir la table Exemples de critères pour la table Requêtes Sélection.

    Remarque : Les critères vous sont utilisés pour renvoyer uniquement les enregistrements que vous souhaitez modifier. Sinon, la requête Mise à jour définit sur NULL chaque enregistrement dans chacun des champs de votre requête.

  4. Sous l’onglet Création, dans le groupe Résultats, cliquez sur Affichage, puis sur Mode Feuille de données.

  5. Vérifiez que la requête renvoie les enregistrements que vous voulez définir sur NULL ou sur une chaîne nulle (une paire de guillemets doubles sans espace entre eux («  »).

  6. Si nécessaire, répétez les étapes 3 à 5 et modifiez les champs ou critères jusqu’à ce que la requête renvoie uniquement les données à supprimer, puis appuyez sur Ctrl+S pour enregistrer la requête.

  7. Pour exécuter la requête, double-cliquez sur la requête dans le volet de navigation.

Haut de page

Informations supplémentaires

Suppression de données de tables liées

Si vous souhaitez supprimer des données de plusieurs tables liées, vous devez activer les options Intégrité referentielle et Effacer en cascade les enregistrements associés pour chaque relation. Cela permet à votre requête de supprimer les données des tables des côtés « un » et « plusieurs » de la relation. La préparation de la suppression de données liées nécessite la vérification des éléments suivants :

  • Déterminez quels enregistrements résident du côté « un » de la relation et qui résident du côté « plusieurs ».

  • Si vous devez supprimer les enregistrements du côté « un » de la relation et les enregistrements associés du côté « plusieurs », vous devez activer un ensemble de règles appelées intégrité referentielle, et activer les suppressions en cascade. Les étapes de cette section expliquent l’intégrité referentielle et comment effectuer les deux tâches.

  • Si vous n’avez besoin de supprimer des enregistrements que du côté « un » de la relation, vous devez d’abord supprimer cette relation, puis supprimer les données.

Si vous n’avez besoin de supprimer des données que du côté « plusieurs » de la relation, vous pouvez créer et exécuter votre requête Suppression sans modifier la relation.

Pour savoir quels enregistrements résident sur les côtés « un » et « plusieurs » d’une relation, sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.L’onglet Relations affiche les tables de votre base de données et les relations. Chaque relation est représentée par une ligne qui relie des tables entre des champs.

La figure suivante illustre une relation classique. La plupart des relations dans une base de données, si ce n’est la plupart, ont un côté « un » et un côté « plusieurs ». Le schéma des relations désigne le côté « un » par le chiffre un (1)et le côté « plusieurs » par le symbole infini(∞).

Relation entre deux tables

Lorsque vous supprimez des enregistrements du côté « un » de la relation, vous supprimez également tous les enregistrements associés du côté « plusieurs » de la relation. Toutefois, lorsque vous supprimez des enregistrements du côté « plusieurs » d’une relation, vous ne supprimez généralement pas les enregistrements du côté « un ».

Par ailleurs, Access applique automatiquement un ensemble de règles appelées intégrité referentielle. Ces règles garantissent que les clés étrangères d’une base de données contiennent les valeurs correctes. Une clé étrangère est une colonne dont les valeurs correspondent aux valeurs dans la colonne clé primaire d’une autre table.

Modifier la relation

Suivez ces étapes uniquement lorsque vous avez besoin de supprimer des données sur les côtés « un » et « plusieurs » d’une relation.

  1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.

  2. Cliquez avec le bouton droit sur la relation (la ligne) qui connecte les tables impliquées dans l’opération de suppression, puis cliquez sur Modifier la relation dans le menu raccourci.

  3. Dans la boîte de dialogue Modifier des relations, vérifiez que la case à cocher Appliquer l’intégrité referentielle est cocher.

  4. Cochez la case Effacer en cascade les enregistrements associés.

    Remarque : Tant que vous ne désactivez pas de nouveau cette propriété, la suppression d’un enregistrement du côté « un » de la relation supprime tous les enregistrements associés du côté « plusieurs » de la relation.

  5. Cliquez sur OK,fermez le volet Relations, puis allez à l’ensemble d’étapes suivant.

Supprimer une relation

  1. Si vous ne l’avez pas déjà fait, ouvrez le volet Relations.

  2. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.

    Notez les champs impliqués dans la relation afin de pouvoir restaurer la relation après avoir supprimé vos données.

  3. Cliquez avec le bouton droit sur la relation (la ligne) qui connecte les tables impliquées dans l’opération de suppression, puis cliquez sur Supprimer dans le menu raccourci.

Remarque : Pour restaurer la relation, suivez les étapes précédentes pour ouvrir le volet Relations, puis faites glisser le champ de clé primaire de la table « une » et déposez-le sur le champ de clé étrangère de la table « plusieurs ». La boîte de dialogue Modifier la relation s’affiche. Si l’ancienne relation a appliqué l’intégrité referentielle, sélectionnez Appliquer l’intégrité referentielle,puis cliquez sur Créer. Sinon, il vous suffit de cliquer sur Créer.

Haut de page

Exemples de critères pour les requêtes Sélection

Le tableau suivant répertorie quelques exemples de critères que vous pouvez utiliser dans les requêtes Sélection lorsque vous voulez vous assurer de supprimer uniquement les données que vous voulez supprimer. Certains de ces exemples utilisent des caractères génériques.

Critères

Effet

> 234

Renvoie tous les nombres supérieurs à 234. Pour rechercher tous les nombres inférieurs à 234, utilisez < 234.

>= « Cajhen »

Renvoie tous les enregistrements de Cajhen à la fin de l’alphabet.

Entre #2/2/2010# Et #12/1/2010 #

Renvoie les dates compris entre le 2-fév-2010 et le 1-déc-2010 (ANSI-89). Si votre base de données utilise les caractères génériques ANSI-92, utilisez des apostrophes (') au lieu des signes (#). Exemple : Entre '2/2/2010' Et '1/12/2010'.

Pas "Allemagne"

Recherche tous les enregistrements pour lesquels le contenu du champ n’est pas exactement égal à « Allemagne». Le critère renvoie les enregistrements qui contiennent des caractères en plus d’« Allemagne » tel qu’« Allemagne (Euro) » ou « Europe (Allemagne) ».

Pas "T*"

Recherche tous les enregistrements hormis ceux commençant par T. Si votre base de données utilise le jeu de caractères génériques ANSI-92, utilisez le signe de pourcentage (%) à la place de l'astérisque (*).

Pas "*t"

Recherche tous les enregistrements qui ne se terminent pas par t. Si votre base de données utilise le jeu de caractères génériques ANSI-92, utilisez le signe de pourcentage (%) à la place de l’astérisque (*).

Dans(Canada,R-U)

Dans une liste, recherche tous les enregistrements contenant Canada ou R-U.

Comme "[A-D]*"

Dans un champ Texte, recherche tous les enregistrements qui commencent par les lettres A à D. Si votre base de données utilise le jeu de caractères génériques ANSI-92, utilisez le signe de pourcentage (%) à la place de l’astérisque (*).

Comme "*ar*"

Recherche tous les enregistrements comportant la séquence de lettres « ar ». Si votre base de données utilise le jeu de caractères génériques ANSI-92, utilisez le signe de pourcentage (%) à la place de l’astérisque (*).

Comme "Maison Dewe?"

Recherche tous les enregistrements commençant par « Maison » et contenant une deuxième chaîne de 5 lettres dont les 4 premières lettres sont « Dewe » et la dernière est inconnue. Si votre base de données utilise le jeu de caractères génériques ANSI-92, utilisez le caractère de soulignement (_) à la place du point d’interrogation (?).

#2/2/2010 #

Recherche tous les enregistrements du 2 février 2010. Si votre base de données utilise le jeu de caractères génériques ANSI-92, entourez la date de guillemets simples au lieu d’utiliser des signes ('02/02/2010').

< Date( )- 30

Utilise la fonction Date pour renvoyer toutes les dates postérieures aux 30 derniers jours.

Date()

Utilise la fonction Date pour renvoyer tous les enregistrements contenant la date du jour.

Entre Date( ) Et AjDate("m", 3, Date( ))

Utilise les fonctions Date et Add date pour renvoyer tous les enregistrements entre la date du jour et les trois mois suivants.

Est Null

Renvoie tous les enregistrements contenant une valeur Null (vide ou non définie).

Est Pas Null

Renvoie tous les enregistrements contenant n’importe quelle valeur (qui ne sont pas null).

""

Renvoie tous les enregistrements contenant une chaîne vide. Les chaînes nulles sont nécessaires pour ajouter une valeur à un champ obligatoire, mais que vous ne connaissez pas encore la valeur réelle. Par exemple, un champ peut nécessiter la saisie d’un numéro de télécopie. Dans ce cas, au lieu d’entrer un nombre, vous devez entrer une paire de guillemets doubles sans espace entre eux («  »).

Haut de page

Conseils de dépannage

Pourquoi ce message d’erreur s’affiche-t-il et comment puis-je corriger l’erreur ?

Si vous créez une requête Suppression à l’aide de plusieurs tables et que la propriété Enregistrements uniques de la requête est définie sur Non,Access affiche le message d’erreur . Il n’était pas possible de supprimer des tables spécifiées lorsque vous exécutez la requête.

Pour résoudre ce problème, attribuez la valeur Oui à la propriété Enr uniques.

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

  2. Si la feuille des propriétés de requête n’est pas ouverte, appuyez sur F4 pour l’ouvrir.

  3. Cliquez sur le Concepteur de requêtes pour afficher les propriétés de la requête (et pas celles des champs).

  4. Dans la feuille de propriétés de la requête, recherchez la propriété Enregistrements uniques et attribuez-lui la valeur Oui.

Empêcher le mode désactivé de bloquer une requête

Par défaut, si vous ouvrez une base de données de bureau en qui vous n’avez pas choisi de faire confiance ou qui ne réside pas dans un emplacement approuvé, Access bloque l’exécution de toutes les requêtes Action.

Si vous essayez d’exécuter une requête Action et qu’il ne se passe rien, vérifiez que le message suivant n’apparaît pas sur la barre d’état Access :

Le mode Désactivé a bloqué cette action ou cet événement.

Lorsque vous voyez ce message, vous devez suivre l’étape suivante pour activer le contenu bloqué :

  • Dans la barre des messages d’avertissement de sécurité, cliquez sur Activer lecontenu, puis exécutez à nouveau votre requête.

Haut de page

Besoin d’aide ?

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×