Recherche et suppression des doublons dans Access : guide complet

Dernière mise à jour: 02/10/2025
Auteur: Isaac
  • Sélectionnez la stratégie en fonction de votre objectif : afficher des éléments uniques, résumer ou supprimer.
  • Access facilite la détection basée sur un assistant ; SQL offre un contrôle complet.
  • Pour les données présentant des variations, la déduplication floue améliore la précision.
  • Avant de supprimer, vérifiez et sauvegardez pour éviter des pertes irréversibles.

Image sur les doublons dans Access

Si vous travaillez avec des bases de données Microsoft Access , vous rencontrerez tôt ou tard des enregistrements en double. Ces doublons apparaissent lorsque plusieurs utilisateurs saisissent des données simultanément ou lorsque la structure de la base de données, notamment les relations entre les tables , ne permet pas d'éviter les répétitions. Savoir les détecter et les gérer (les masquer, les afficher une seule fois, les consolider ou les supprimer) est essentiel pour garantir la qualité des données.

Il n'existe pas de méthode unique et universelle : tout dépend de ce que vous recherchez : s'agit-il de trouver des doublons exacts, de tolérer des erreurs (noms manquants ou variantes) ou de nettoyer la table en toute sécurité ? Access propose un assistant pour la recherche de doublons, des requêtes SQL comme DISTINCT et GROUP BY, ainsi que la possibilité de supprimer des enregistrements en masse grâce à des requêtes DELETE . Pour les cas complexes, des outils de déduplication spécialisés avec recherche approximative sont disponibles.

Rechercher les doublons avec l'assistant Access

Pour les utilisateurs d'Access, la méthode la plus directe consiste à utiliser l'Assistant Requête en double. Cet assistant génère une requête de sélection qui identifie les enregistrements présentant des valeurs correspondantes dans les champs que vous choisissez , ce qui vous permet d'examiner les résultats avant de prendre une décision.

Voici comment lancer et configurer l'outil étape par étape, sans jargon technique inutile : ouvrez l'onglet Créer et accédez à l'Assistant de requête . Dans la boîte de dialogue, sélectionnez l'Assistant de requête pour rechercher les doublons et confirmez pour continuer.

Ensuite, sélectionnez la table (ou la requête) où vous soupçonnez la présence de doublons , par exemple une table créée dans Access , puis cliquez sur Suivant. L’assistant vous demandera quels champs doivent correspondre pour qu’un enregistrement soit considéré comme un doublon ; par exemple, le nom et la date de naissance dans un fichier de contacts, ou le numéro de client dans une table de commandes.

Vous pouvez également sélectionner des champs supplémentaires à afficher dans les résultats (ces champs n'ont aucune incidence sur la comparaison, mais ils facilitent l'analyse des résultats). Enfin, Access vous proposera un nom de requête ; vous pouvez également saisir le vôtre. Cliquez sur Terminer pour l'exécuter et consulter la liste des correspondances.

Une fois la requête de détection des doublons obtenue, vous pouvez l'utiliser comme base pour modifier, consolider ou supprimer les données . Si vous souhaitez croiser plusieurs tables et détecter les doublons entre elles, commencez par créer une requête de jointure qui combine les données, puis exécutez à nouveau la recherche de doublons sur ce résultat.

Assistant d'accès pour trouver les doublons

SQL dans Access : afficher, masquer ou supprimer les doublons

Lorsque vous avez besoin de plus de contrôle (ou d'automatisation), les requêtes SQL d'Access sont vos meilleurs alliés, par exemple pour la mise à jour d'enregistrements . En quelques instructions seulement, vous pouvez afficher uniquement les valeurs uniques, regrouper les doublons ou identifier les lignes redondantes pour un traitement ultérieur . Examinons les scénarios les plus courants.

Avec DISTINCT, affichez chaque combinaison unique une seule fois. Utile pour les rapports où vous ne souhaitez pas voir de répétitions identiques d'une valeur , par exemple, une liste d'articles différents commandés par chaque client.

SÉLECTIONNEZ DISTINCT customer_id, article_no DE customer_articles ORDER BY customer_id, article_no;

Si vous souhaitez également générer une table propre sans doublons , combinez-la avec INTO pour créer une nouvelle table à partir du résultat :

SÉLECTIONNEZ DISTINCT customer_id, article_no DANS table_new FROM customer_articles ORDER BY customer_id, article_no;

Synthétisez et masquez les doublons avec GROUP BY. Lorsque votre objectif est de regrouper des données et d'obtenir des statistiques (nombre de répétitions, totaux, etc., et champs calculés dans Access ) , utilisez GROUP BY. Par exemple, pour connaître le nombre de ventes de chaque article et le chiffre d'affaires total associé :

SÉLECTIONNEZ article_no, COUNT(*) AS fois, SUM(revenue) AS revenu DE invoice_articles GROUP BY article_no ORDER BY fois DESC, article_no ;

Détectez les doublons exacts en comparant les lignes. Si vous devez identifier des paires ou des groupes d'enregistrements partageant la même valeur dans un ou plusieurs champs et préparer leur suppression, vous pouvez utiliser une jointure automatique de la table avec elle-même, en veillant à ne pas apparier une ligne avec elle-même :

SÉLECTIONNEZ t1.id, t1.name, t2.id COMME duplicate_id, t2.name COMME duplicate_name DE nom_table COMME t1, nom_table COMME t2 OÙ t1.name = t2.name ET t1.id <> t2.id ET t1.id = ( SÉLECTIONNEZ MAX(id) DE nom_table COMME tx OÙ tx.name = t1.name );

Notez deux détails : une clé (id) est nécessaire pour identifier de manière unique chaque ligne , et MAX(id) est utilisé pour déterminer quel est l'enregistrement « principal » de chaque groupe ; les autres sont considérés comme des candidats à la suppression.

  Comment installer et configurer Microsoft 365 Copilot sur Android

Supprimez les doublons exacts. Grâce au modèle ci-dessus, vous pouvez inclure la liste des identifiants restants dans une instruction DELETE et ainsi effectuer un nettoyage, en ne conservant qu'une seule ligne par groupe :

SUPPRIMER DE tablename OÙ id DANS ( SÉLECTIONNEZ t2.id DE tablename AS t1, tablename AS t2 OÙ t1.name = t2.name ET t1.id <> t2.id ET t1.id = ( SÉLECTIONNEZ MAX(id) DE tablename AS tx OÙ tx.name = t1.name ) );

Cette approche est facilement extensible pour comparer plusieurs champs simultanément (par exemple, nom, rue, code postal). Il est impératif d'effectuer une sauvegarde avant d'exécuter une commande DELETE ; vous trouverez ci-dessous une liste de vérification pour les sauvegardes et des instructions pour convertir une requête en requête DELETE depuis le mode Création.

Des doublons dans différentes tables ? Si vos données sont dispersées dans plusieurs tables ou proviennent d’Excel, il est recommandé d’importer les données d’Excel dans Access et de créer d’abord une requête de jointure qui regroupe les lignes « compatibles ». Vous pouvez ensuite appliquer DISTINCT, GROUP BY ou une jointure automatique à la jointure résultante pour identifier les chevauchements.

Requêtes SQL pour les doublons dans Access

Duplications difficiles : déduplication « intelligente » avec tolérance aux pannes

Dans la réalité, les doublons exacts sont rares : accents, abréviations, espaces superflus, noms de rues orthographiés de mille façons… Dans ces cas-là, une recherche floue (approximative) acceptant les correspondances partielles est nécessaire . Access ne propose pas nativement un moteur de similarité performant ; c’est là que des outils de déduplication spécialisés, comme DataQualityTools, s’avèrent indispensables.

Que proposent ces outils ? Ils trouvent des enregistrements suffisamment similaires selon plusieurs critères (par exemple, nom + adresse) , permettent de définir des seuils de similarité (par exemple, 50 % pour la rue) et combinent les champs en blocs logiques pour une comparaison conjointe.

Flux de travail typique avec un utilitaire de déduplication approximative : installez l’outil, créez un projet de déduplication dans le bloc fonctionnel « Déduplication sur une table » , puis ouvrez votre fichier Access (ou connectez-vous s’il se trouve sur un serveur). Sélectionnez ensuite la base de données et la table cibles dans les menus déroulants de l’outil.

  Comment utiliser Claude dans Excel étape par étape et en tirer le meilleur parti

L'essentiel est de préciser quelles colonnes comparer et comment . Dans les listes d'adresses, par exemple, vous pouvez associer le champ « rue » à « Rue » et définir un seuil de 50 % afin que seules les lignes où la similarité du nom de rue dépasse ce seuil soient considérées comme des doublons. Il est également courant de regrouper plusieurs colonnes (telles que « Prénom » + « Nom » + « Société ») afin de les comparer ensemble avant de déterminer si deux enregistrements appartiennent à la même personne ou entité.

Après avoir configuré les options avancées (le cas échéant), la recherche démarre. Les résultats s'affichent généralement dans un tableau présentant les groupes détectés et une liste d'actions suggérées : lignes à conserver, à sélectionner, à fusionner ou à supprimer. Les outils permettent de corriger la sélection (par exemple, décocher une ligne à ne pas supprimer) avant l'exportation ou l'application des modifications.

Comment importer les résultats dans Access ? Les options courantes consistent à marquer les enregistrements sélectionnés avec l’indicateur « Supprimer » dans un champ spécifique de votre table ou à exporter une liste d’identifiants. Ensuite, dans Access, exécutez une requête de suppression en filtrant par ce champ ou par les identifiants marqués. De nombreux outils proposent des périodes d’essai afin que vous puissiez valider la qualité de la déduplication sur vos propres données.

Déduplication floue dans Access

Déménagement en toute sécurité : liste de contrôle avant déménagement, consultation de déménagement et étude de cas pratique

Avant de supprimer quoi que ce soit, il est conseillé de se préparer. Les suppressions sont irréversibles et, en cas de relations d'intégrité référentielle, vous pourriez supprimer plus d'éléments que prévu. Consultez cette liste de vérification rapide.

- Regarde ça le fichier .accdb n'est pas en lecture seule.
– Si partagé, demandez aux autres utilisateurs de fermer les objets avec qui vous allez travailler pour éviter les blocages et les conflits.
– Si vous avez les autorisations, ouvre la base en mode exclusif (Fichier > Ouvrir > flèche à côté de Ouvrir > Ouvrir en mode exclusif).
- Faire un sauvegarderC'est le seul véritable moyen de récupérer des lignes si quelque chose ne va pas.

Comment créer et exécuter une requête de suppression à partir du mode Création d'Access ? La méthode est simple : commencez par créer une requête SELECT qui renvoie exactement ce que vous souhaitez supprimer et vérifiez-la ; puis convertissez-la en une requête de suppression.

Étapes guidées : Dans l’onglet Créer, accédez à Conception de requêtes et ajoutez la table concernée . Double-cliquez sur l’astérisque (*) si vous souhaitez afficher tous les champs, puis ajoutez à la grille ceux que vous utiliserez pour filtrer (par exemple, CustomerID et OrderDate pour localiser les commandes en attente d’un client qui n’est plus client).

Saisissez les critères pertinents (identifiant client, dates postérieures à une certaine date, etc.) et décochez « Afficher » pour les champs correspondants afin de simplifier l'affichage. Cliquez sur « Exécuter » pour vérifier que seuls les enregistrements à supprimer apparaissent.

Une fois le résultat satisfaisant, retournez en mode Création et, dans l'onglet Création, cliquez sur Supprimer. Access convertira la requête en une requête de suppression : la ligne Afficher sera masquée et la ligne Supprimer sera ajoutée. Vous y verrez « De » sous la colonne astérisque (*) et « Où » sous les colonnes contenant les critères. Relancez la requête et vérifiez.

  Comment insérer un PDF dans un document Word en tant qu'objet

Conseil supplémentaire : Si vous comparez des tables ou recherchez des enregistrements dans une table qui n’ont pas d’équivalent dans une autre (le contraire d’un doublon), Access propose des assistants pour vous aider à comparer et à localiser les éléments discordants . Ceci est utile pour les tâches de rapprochement de données.

Exemple pratique : « Je souhaite uniquement les valeurs uniques d’un seul champ. » Ce problème se pose généralement : un utilisateur saisit `SELECT DISTINCT IdOperador FROM TRegO WHERE IdOperador IS NOT NULL` et obtient 105 lignes uniques. Cependant, lorsqu’il ajoute d’autres champs (CIF, Nombre), le résultat augmente (107, 116…) car DISTINCT est appliqué à toutes les colonnes de la requête SELECT . L’explication est simple : si vous ajoutez des colonnes, la combinaison complète doit être unique . Ainsi, les lignes qui diffèrent par le champ Nombre (par une virgule, un espace supplémentaire, etc.) ne sont plus considérées comme des doublons.

Des solutions claires existent selon ce que vous souhaitez afficher : si vous voulez uniquement la liste des identifiants d’opérateur uniques , conservez uniquement ce champ dans l’instruction SELECT avec DISTINCT. Si vous souhaitez également afficher une autre colonne « représentative » pour chaque identifiant d’opérateur, utilisez une stratégie « une ligne par groupe ».

-- 1) Choisissez une ligne stable par groupe (par exemple, celle avec l'Id le plus élevé) SELECT t.* FROM TRegO AS t INNER JOIN ( SELECT IdOperador, MAX(Id) AS IdMax FROM TRegO WHERE IdOperador IS NOT NULL GROUP BY IdOperador ) AS g ON t.IdOperador = g.IdOperador AND t.Id = g.IdMax; -- 2) Ou renvoyez les agrégats par groupe (la première valeur alphabétique ou la plus basse) SELECT IdOperador, MIN(Nombre) AS NombreExample, MIN(CIF) AS CIFExample FROM TRegO WHERE IdOperador IS NOT NULL GROUP BY IdOperador;

La première option renvoie une ligne « canonique » complète par ID d'opérateur (celle avec l'ID le plus élevé) ; la seconde fournit des valeurs agrégées par groupe (par exemple, par ordre alphabétique le plus bas). Évitez de combiner DISTINCT avec des colonnes supplémentaires si vous n'avez besoin que d'une seule ligne par clé ; privilégiez GROUP BY ou une sous-requête avec MAX/MIN pour obtenir le contrôle souhaité.

Si la phase finale consiste à éliminer les doublons en ne laissant qu'une seule ligne par OperatorId, combinez le modèle précédent avec une requête de suppression : identifiez d'abord quel Id de chaque groupe vous souhaitez conserver (MAX(Id) ou MIN(Id)) et supprimez le reste avec un DELETE…WHERE Id NOT IN (… conservé …), toujours avec une sauvegarde préalable.

Supprimer les doublons en toute sécurité dans Access

Lorsqu'on traite des doublons dans Access, il est essentiel d'avoir un objectif clair : « masquer les doublons » ne signifie pas « supprimer les enregistrements » ni « trouver des similarités approximatives ». L'assistant accélère la détection initiale, le SQL offre une précision chirurgicale (DISTINCT, GROUP BY, jointures automatiques et DELETE), et pour les cas complexes impliquant des adresses et des noms, la déduplication approximative, facilitée par des outils spécialisés, est recommandée. Avec des sauvegardes, des tests préalables et une conception rigoureuse des requêtes, le nettoyage des données devient un processus fiable et reproductible.

Excel vers Access
Article connexe:
Comment importer des données d'Excel vers Access rapidement et facilement