Forum Clubic

Coder et colorier doublons dans Access - VBA(coder&colorier doublons)sous Access

Veuillez m’aider. J’ai besoin le code en VBA sous Access pour colorier et coder les doublons dans ma base de données Access.(Je peux le faire en EXCEL en manipulant les cellules, mais je suis nulle en ACCESS visant plutôt les champs).

Problème: Colorier en gris et coder en 1 les premières lignes de doublons (excepté la dernière ligne de doublon qu’on veut conserver). Critères pour être considérés comme doublons:mêmes(CIE;Date;Chq-No. >0;Montant).

Exemple:

Tableau original(Déja concatené et trié; Colonne Code = Vide)
CIE Date Chq-No. Montant Concat Code
A 2/3/05 122 5000 A2/3/051225000
A 2/3/06 122 5000 A2/3/061225000
A 2/3/05 000 5000 A2/3/050005000
A 2/3/05 000 5000 A2/3/050005000
B 4/3/05 133 3000 B4/3/051333000
B 4/3/05 133 3000 B4/3/051333000
B 5/3/07 188 4000 B5/3/071884000
C 7/8/05 111 2000 C7/8/051112000

Résultat : Doublons: Lignes(1&2 ; 5&6). Seulement les lignes 1 et 5 vont être coloriées en gris et codées en 1. On laissera intactes les dernières lignes de doublons:Ligne 2 &Ligne 6)

CIE Date Chq-No. Montant Concat Code
A 2/3/05 122 5000 A2/3/051225000 1
A 2/3/06 122 5000 A2/3/061225000
A 2/3/05 000 5000 A2/3/055000
A 2/3/05 000 5000 A2/3/055000
B 4/3/05 133 3000 B4/3/051333000 1
B 4/3/05 133 3000 B4/3/051333000
B 5/3/07 188 4000 B5/3/071884000
C 7/8/05 111 2000 C7/8/051112000
Un gros merci en avance

Tout dépend d’abord de l’access que tu utilises.
Je ne peux te proposer quelque chose que pour l’Access 2002.

Le plus simple est de commencer par mettre le champ code à jour, il servira ensuite à la mise en forme.
Dans la doc, il est dit qu’il existe un assistant doubon ;
personnellement, je ne l’ai pas trouvé, mais on peut utiliser la méthode suivante :

1- S’assurer que la table principale (Tableau Original) a bien une clé d’index (num auto)
2- Requête de mise à jour sur Tableau Original pour mettre toutes les valeurs code à 1
3- Requete de regroupement (on l’appellera RDoublon) pour obtenir une sélection des enregistrements ignorant les doublons.
On y retrouve tous les champs triés en ordre croissant et en mode Regroupement , sauf le champ qui doit se trouver le dernier et être en mode Premier
4- Requête de création de table avec pour source RDoublon pour créer une table TDoublon (les Maj suivantes ne peuvent pas se faire avec en condition une requête de regroupement)
5- Requête de mise jour du champ code de Tableau Original :
On crée une liaison entre les champs et Premier de N° des tables Tableau Original et TDoublon
On force la valeur de code à 0

Pour la mise en forme (couleurs), ca risque d’être un peu plus dur ; par contre, je suis intéressé par la méthode que tu emploierais dans Excel (mise en forme conditionnelle ?)

Merci Gcc,
J’ai déja essayé les requêtes suggérées.Ça fonctionne bien. La grande partie de mon problème est résolue (Coder les doublons). Il m’en reste leur coloration. J’utilise Access 2003. En Excel, J’utilisai les codes suivants:
If Cellsuivante.Value = Cellcourante.Value Then
Cellcourante.EntireRow.Select
Selection.Interior.ColorIndex = 15
Encore, un gros merci.

Personnellement, je pense que je me serais orienté vers une mise en forme conditionnelle.
Et je viens de m’apercevoir que la-dite mise en forme conditionnelle existe aussi en Access2002 (donc je suppose aussi en 2003)
Donc tu crées ton état à ta convenance, puis pour chacun des champs (sauf code qui peut meme à la limite être caché), tu fais
clic droit > mise en forme conditionnelle
Comme condition, tu choisis expression avec la valeur code =1 et tu choisis ta mise en forme
Tu peux également au dessus choisir une mise en forme par défaut qui s’appliquera aux autres lignes

Merci Gcc,
Tu as raison. C’est bien plus simple avec une mise en forme conditionnelle