Lorsque vous souhaitez supprimer rapidement un grand nombre de données ou un ensemble de données de bureau dans une base de données Access de bureau, une requête de suppression ou de mise à jour peut être utile, car les requêtes permettent de spécifier des critères pour trouver et supprimer rapidement les données. L’utilisation d’une requête peut également vous faire gagner du temps, 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 ne souhaitez supprimer que quelques enregistrements, vous n’avez pas besoin d’une requête. Il vous suffit d’ouvrir la table en mode Feuille de données, de sélectionner les champs (colonnes) ou les enregistrements (lignes) à supprimer, puis d’appuyer sur Suppr.
Important
Les informations contenues dans cet article sont destinées uniquement à une utilisation avec des bases de données de bureau. Vous ne pouvez pas utiliser, supprimer ou mettre à jour des requêtes dans les applications web Access.
Contenu de cet article
- Choix d’un type de requête
- Utilisation d’une requête Suppression
- Utiliser une requête Mise à jour
- Informations supplémentaires
- Conseils de dépannage
Choix d’un type de requête
Pour supprimer des données de votre base de données, vous pouvez utiliser une requête Mise à jour ou Suppression. Sélectionnez une requête en fonction des détails figurant dans le tableau suivant :
| Type de requête | Utilisation | Résultats |
|---|---|---|
| Utiliser une requête Suppression | Pour supprimer des enregistrements entiers (lignes) d’une table ou de deux tables liées simultanément. Remarque : Si les enregistrements se situent sur le 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 des tables associées. |
Supprimer des requêtes Supprimer toutes les données de chaque champ, y compris la valeur de clé qui rend un enregistrement unique |
| Utiliser une requête Mise à jour | Pour supprimer des valeurs de champ individuelles d’une table. | Facilite la suppression de valeurs en mettant à jour les valeurs existantes vers une valeur nulle (c’est-à-dire aucune donnée) ou une chaîne 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 :
- Cliquez avec le bouton droit sur Démarrer, puis cliquez sur Ouvrir l’Explorateur Windows.
- Cliquez avec le bouton droit sur le fichier de base de données, puis cliquez sur Propriétés.
- Vérifier 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 la base de données.
Assurez-vous que vous avez activé le contenu dans la base de données. Par défaut, Access bloque toutes les requêtes d’action (suppression, mise à jour et 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 états qui utilisent les données à supprimer. Cela permet d’éviter les violations de verrouillage.
Avant de modifier ou de supprimer des enregistrements, il est recommandé d’effectuer une copie de sauvegarde de la base de données si vous voulez 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
- Cliquez sur l’onglet >Fichier Ouvrir.
- Recherchez et pointez sur la base de données pour la sélectionner, cliquez sur la flèche en regard du bouton Ouvrir , puis cliquez sur Ouvrir en exclusivité.
Sauvegarde de la base de données
- Cliquez sur l’onglet Fichier , pointez sur Enregistrer sous.
- 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.
- 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, 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 Suppression
Pour créer une requête de suppression, cliquez sur l’onglet Créer , puis dans le groupe Requêtes , cliquez sur Création de requête. Double-cliquez sur chaque table dont vous souhaitez supprimer des enregistrements, puis cliquez sur Fermer.
Le tableau apparaît sous forme de fenêtre dans la section supérieure de la grille de création des requêtes. 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 de critères spécifiques dans une requête Supprimer
Important
Utilisez des critères pour renvoyer uniquement les enregistrements que vous souhaitez supprimer. Dans le cas contraire, la requête de suppression supprime tous les enregistrements de la table.
Double-cliquez sur le champ spécifié 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 la case activée pour chaque champ de critère.
Exemple de cas où vous souhaiterez peut-être utiliser cette option : supposons que vous souhaitiez supprimer toutes les commandes en attente pour un client. Pour rechercher uniquement ces enregistrements, vous devez ajouter les champs ID client et Date de commande à la grille de création de requête, puis entrer le numéro d’ID du client et la date à laquelle les commandes de ce client sont devenues invalides.
- Sous l’onglet Création , cliquez sur Mode>Afficher la feuille de données.
- Vérifiez que la requête renvoie les enregistrements à supprimer, puis appuyez sur CTRL+S pour enregistrer la requête.
- 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 de mise à jour pour supprimer des données changera les valeurs existantes en valeurs NULL ou en chaîne nulle (une paire de guillemets doubles sans espace entre les deux), selon les critères que vous spécifiez.
Cliquez sur l’onglet Créer et, dans le groupe Requêtes , cliquez sur Création de requête.
Sélectionnez la table contenant les données que vous voulez 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 apparaît sous forme de fenêtre dans la section supérieure de la grille de création des requêtes. La fenêtre répertorie tous les champs de la table sélectionnée.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 table permet à la requête Suppression de supprimer des enregistrements entiers (lignes) de la table.
Si vous le souhaitez, vous pouvez entrer des critères pour un ou plusieurs champs de la ligne Critères du concepteur, puis décocher la case Afficher la case activée pour chaque champ de critère. Pour plus d’informations sur l’utilisation des critères, consultez le tableau Exemple de critères pour certaines requêtes .Remarque
Vous utilisez des critères pour renvoyer uniquement les enregistrements que vous souhaitez modifier. Dans le cas contraire, la requête de mise à jour définit tous les enregistrements de chacun des champs de votre requête sur NULL.
Sous l’onglet Création, dans le groupe Résultats, cliquez sur Affichage, puis sur Mode Feuille de données.
Vérifiez que la requête renvoie les enregistrements que vous souhaitez définir sur NULL ou une chaîne nulle (une paire de guillemets doubles séparés par un espace (« »).
Si nécessaire, répétez les étapes 3 à 5 et modifiez les champs ou les critères jusqu’à ce que la requête renvoie uniquement les données que vous voulez supprimer, puis appuyez sur CTRL+S pour enregistrer la requête.
Pour exécuter la requête, double-cliquez sur la requête dans le volet de navigation.
Informations supplémentaires
Suppression de données de tables associées
Si vous souhaitez supprimer des données de plusieurs tables liées, vous devez activer les options Intégrité référentielle et Effacer en cascade les enregistrements correspondants pour chaque relation. Cela permet à votre requête de supprimer des données des tables sur les côtés « un » et « plusieurs » de la relation. La préparation à la suppression des données associées nécessite la vérification des éléments suivants :
- Déterminez les enregistrements qui se trouvent du côté « un » de la relation et ceux qui résident du côté « plusieurs ».
- Si vous devez 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é 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 sur le côté « un » de la relation, vous devez d’abord supprimer cette relation, puis supprimer les données.
Si vous devez 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 identifier les enregistrements qui se trouvent 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 les tables entre les champs.
La figure suivante illustre une relation typique. La plupart, sinon la totalité, des relations dans une base de données ont un côté « un » et un côté « plusieurs ». Le diagramme relation désigne le côté « un » avec le chiffre un (1) et le côté « plusieurs » avec le symbole de l’infini (∞).
Lorsque vous supprimez des enregistrements du côté « un » de la relation, vous supprimez également tous les enregistrements correspondants 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é 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 de clé primaire d’une autre table.
Modifier la relation
Procédez comme suit uniquement lorsque vous devez supprimer des données 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.
Cliquez avec le bouton droit sur la relation (la ligne) reliant les tables impliquées dans l’opération de suppression, puis cliquez sur Modifier la relation dans le menu contextuel.
Dans la boîte de dialogue Modifier les relations, assurez-vous que la case Appliquer l’intégrité référentielle case activée est activée.
Activez la case à cocher Effacer en cascade les enregistrements correspondants case activée.
Remarque
Tant que vous n’avez pas désactivé à nouveau cette propriété, la suppression d’un enregistrement du côté « un » de la relation supprimera tous les enregistrements correspondants du côté « plusieurs » de la relation.
Cliquez sur OK, fermez le volet Relations , puis passez à l’ensemble d’étapes suivant.
Supprimer une relation
- Si vous ne l’avez pas déjà fait, ouvrez le volet Relations .
- 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. - Cliquez avec le bouton droit sur la relation (la ligne) reliant 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 appliquait 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 les requêtes de sélection
Le tableau suivant répertorie quelques exemples de critères que vous pouvez utiliser dans les requêtes de sélection lorsque vous voulez vous assurer de supprimer uniquement les données à 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 le #2/2/2010# et le #12/1/2010# | Renvoie les dates du 2 février 2010 au 1er décembre 2010 (ANSI-89). Si votre base de données utilise les caractères génériques ANSI-92, utilisez des guillemets simples (') au lieu des signes dièse (#). Exemple : Entre le 02/02/2010 et le 01/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 sauf ceux commençant par T. Si votre base de données utilise le jeu de caractères générique ANSI-92, utilisez le signe de pourcentage ( %) au lieu 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 commençant 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 ( %) 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 trait de soulignement (_) au lieu 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 de signes dièse ('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 AjDate pour renvoyer tous les enregistrements compris entre la date du jour et une date située trois mois après la date du jour. |
| Est Null | Renvoie tous les enregistrements contenant une valeur Null (vide ou non définie). |
| Est Pas Null | Renvoie tous les enregistrements qui contiennent une valeur (qui ne sont pas des valeurs null). |
| "" | Renvoie tous les enregistrements contenant une chaîne vide. Vous utilisez des chaînes vides lorsque vous devez 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 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 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.
- Ouvrez la requête Suppression en mode Création.
- Si la feuille des propriétés de requête n’est pas ouverte, appuyez sur F4 pour l’ouvrir.
- Cliquez sur le Concepteur de requêtes pour afficher les propriétés de la requête (et pas celles des champs).
- 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 ce message s’affiche, procédez comme suit 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