Bonjour,

Je travaille sur un formulaire Access.

J'ai une variable "StrTableNameMail" qui récupère le nom de la table en saisie.

Je souhaiterais dédoublonner cette table selon cette règle : une adresse mail est unique.

J'ai testé cette méthode avec une table temporaire afin d'obtenir dans ma table finale "StrTableNameMail" les bons enregistrements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
DoCmd.RunSQL "SELECT DISTINCT AdrEmail INTO T_DOUBLON_TMP FROM [" & StrTableNameCourrier & "] GROUP BY AdrEmail ;"
 
strSQL = "DELETE FROM [" & StrTableNameCourrier & "] T1"
strSQL = strSQL & " WHERE EXISTS (SELECT * FROM [" & StrTableNameCourrier & "] T2 WHERE T1.AdrEmAil = T2.AdrEmail GROUP BY AdrEmail)" & ";"
 
DoCmd.RunSQL "INSERT INTO [" & StrTableNameCourrier & "] SELECT AdrEmail FROM T_DOUBLON_TMP ;"
 
DoCmd.RunSQL "DROP TABLE T_DOUBLON_TMP ;"
DoCmd.RunSQL strSQL

Lorsque j'excute mon code une erreur 3121 est lancée :
Impossible d'effectuer un regroupement sur les champs sélectionnés avec *
Donc mon erreur se trouve ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
strSQL = strSQL & " WHERE EXISTS (SELECT * FROM [" & StrTableNameCourrier & "] T2 WHERE T1.AdrEmAil = T2.AdrEmail GROUP BY AdrEmail)" & ";"
Je bute et je n'arrive pas avancer. Je ne vois pas en quoi l'erreur lancée est réelement un problème.

Merci pour votre aide !