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 ensemble de données dans une base de données de bureau Access, une requête de suppression ou de mise à jour peut être utile, car les requêtes permettent 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 supprimer uniquement quelques enregistrements, vous n’avez pas besoin d’une requête. Ouvrez simplement la table en mode Feuille de données, sélectionnez les champs (colonnes) ou les enregistrements (lignes) à supprimer, puis appuyez sur SUPPR.

Important : Les informations contenues dans cet article sont destinées à être utilisées uniquement avec des bases de données de bureau. Vous ne pouvez pas utiliser de requêtes de suppression ou de mise à jour dans les applications web Access.

Contenu de cet article

Choix d’un type de requête

Vous pouvez utiliser une requête de mise à jour ou une requête de suppression pour supprimer des données de votre base de données. Sélectionnez une requête en fonction des détails du tableau suivant :

Type de requête

Utilisation

Résultats

Utiliser une requête de suppression

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

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

Supprimer les requêtes suppriment toutes les données de chaque champ, y compris la valeur de clé qui rend un enregistrement unique

Utiliser une requête de mise à jour

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

Facilite la suppression des valeurs en mettant à jour les valeurs existantes avec une valeur null (c’est-à-dire aucune donnée) ou une chaîne de longueur nulle (une paire de guillemets doubles sans espace entre elles).

Haut de la page

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

  • Assurez-vous que le fichier n’est pas 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. Vérifiez si l’attribut Lecture seule est sélectionné.

  • Vérifiez que vous disposez des autorisations nécessaires pour supprimer des enregistrements de la base de données. Si vous n’êtes pas sûr, contactez votre administrateur système ou le concepteur de base de données.

  • Vérifiez que vous avez activé le contenu dans la base de données. Par défaut, Access bloque toutes les requêtes d’action (requêtes de suppression, de mise à jour et de création de table), sauf si vous approuvez d’abord la base de données. Pour plus d’informations sur l’approbation d’une base de données, consultez la section Empêcher le mode désactivé de bloquer une requête.

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

  • Avant de modifier ou de supprimer des enregistrements, il est judicieux d’effectuer 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 à et pointez pour sélectionner la base de données, cliquez sur la flèche en regard du bouton Ouvrir , puis cliquez sur Ouvrir exclusif.

    Ouverture d’un fichier en mode Exclusif

Sauvegarder 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 une base de données créée dans la version précédente d’Access, vous pouvez recevoir un message indiquant qu’il n’est pas possible de créer une sauvegarde 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 de suppression

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

Le tableau apparaît sous la forme d’une fenêtre dans la section supérieure de la grille de conception 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 conception.

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

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

Double-cliquez sur le champ que vous souhaitez spécifier comme critère de suppression, entrez l’un des critères dans la ligne Critères du concepteur de requêtes, puis désactivez la case à cocher Afficher pour chaque champ de critère.

Exemple d’utilisation de cette option : supposons que vous souhaitiez supprimer toutes les commandes en attente pour un client. Pour trouver uniquement ces enregistrements, vous devez ajouter les champs Id client et Date de commande à la grille de conception de requête, puis entrer le numéro d’identification du client et la date à laquelle les commandes de ce client sont devenues non valides.

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

  2. Vérifiez que la requête retourne les enregistrements que vous souhaitez 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 mettre à jour la requête dans une application web Access.

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

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

  2. Sélectionnez la table contenant les données que vous souhaitez supprimer (si la table est associée, sélectionnez la table du côté « un » de la relation), cliquez sur Ajouter, puis sur Fermer.

    Le tableau apparaît sous la forme d’une fenêtre dans la section supérieure de la grille de conception 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 conception. L’ajout de tous les champs de table permet à la requête delete de supprimer des enregistrements entiers (lignes) de la table.

    Si vous le souhaitez, vous pouvez entrer des critères pour un ou plusieurs champs dans la ligne Critères du concepteur, puis décochez la case Afficher pour chaque champ de critère. Pour plus d’informations sur l’utilisation de critères, consultez la table Exemples de critères pour sélectionner des requêtes .

    Remarque : Vous utilisez des critères pour renvoyer uniquement les enregistrements que vous souhaitez modifier. Sinon, la requête de mise à jour affecte la valeur 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 retourne les enregistrements que vous souhaitez définir sur NULL ou une chaîne de longueur 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 les critères jusqu’à ce que la requête retourne uniquement les données que vous souhaitez 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 la page

Informations supplémentaires

Suppression de données de tables associées

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

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

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

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

Si vous avez besoin de supprimer des données uniquement du côté « plusieurs » de la relation, vous pouvez créer et exécuter votre requête de suppression sans avoir à 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 sous la forme d’une ligne qui connecte des tables entre des champs.

La figure suivante illustre une relation classique. La plupart, sinon la totalité, des relations d’une base de données ont un côté « un » et un côté « plusieurs ». Le diagramme de relation indique le côté « un » avec le chiffre un (1) et le côté « plusieurs » avec 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 ».

En outre, Access applique automatiquement un ensemble de règles appelées intégrité référentielle. 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 de la colonne clé primaire d’une autre table.

Modifier la relation

Suivez ces étapes uniquement lorsque vous avez besoin de supprimer des données du côté « un » et du « 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 contextuel.

  3. Dans la boîte de dialogue Modifier les relations , vérifiez que la case Appliquer l’intégrité référentielle est cochée.

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

    Remarque : Tant que vous n’avez pas à nouveau désactivé 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 passez à 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 contextuel.

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 « un » 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é référentielle, sélectionnez Appliquer l’intégrité référentielle, puis cliquez sur Créer. Sinon, cliquez simplement sur Créer.

Haut de la page

Exemples de critères pour sélectionner des requêtes

Le tableau suivant répertorie quelques exemples de critères que vous pouvez utiliser dans certaines requêtes lorsque vous souhaitez vous assurer que vous supprimez uniquement les données que vous souhaitez 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#

Retourne des dates comprises entre le 2 février 2010 et le 1er décembre 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/02/2010 » et « 12/1/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 pourcentage (%) au lieu 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 des signes dièse (« 2/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 DateAdd pour renvoyer tous les enregistrements entre la date du jour et trois mois à partir de la date du jour.

Est Null

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

Est Pas Null

Retourne tous les enregistrements qui contiennent n’importe quelle valeur (qui n’est pas null).

""

Renvoie tous les enregistrements contenant une chaîne vide. Vous utilisez des chaînes de longueur nulle lorsque vous devez ajouter une valeur à un champ obligatoire, mais vous ne savez pas encore quelle est 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 entrez une paire de guillemets doubles sans espace entre eux («  »).

Haut de la 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 de 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 ; Impossible 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 que vous n’avez pas choisi d’approuver ou qui ne réside pas dans un emplacement approuvé, Access bloque l’exécution de toutes les requêtes d’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, effectuez l’étape suivante pour activer le contenu bloqué :

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

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.