lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009
-
7 avril 2008 à 08:48
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009
-
7 avril 2008 à 13:13
Bonjour,
Je cherche à supprimer les doublons dans un recordset dynamique. Voila mon idée :
Je trie le recordset ensuite je lis la ligne et je la compare avec la ligne suivante. si elle est identique alors je la supprime.
Algorithimiquement parlant je pense que c'est une solution. Cependant, quand j'écris mon code, il me supprime toutes mes lignes. Je ne trouve pas mon erreur, si quelqu'un peut m'aider ce serait tres gentil.
Voici mon code :
rsDyna.Sort = "Iden ASC"
rsDyna.MoveFirst
Do While Not rsDyna.EOF
ligne = rsDyna!Iden.Value
rsDyna.MoveNext
If ligne = rsDyna!Iden.Value Then rsDyna.Delete adAffectCurrent
rsDyna.MoveNext
loop
rsDyna.update
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 7 avril 2008 à 13:13
Merci pour toutes vos réponses.
J'ai trouvé la solution à mon probleme.
Face à vos réponses : Je ne gère pas une base de données via mon recordset mais je récupére les informations circulant sur un port com et je les stocke apres les avoir formalisées dans ce recordset.
J'ai tenté la commande avec le distinct mais j'avais des erreurs systématiquement.
Voici le bout de code avec ma solution :
'-- Tri croissant des enregistrements
rsDyna.Sort = "Commande ASC"
rsDyna.MoveFirst
Do While Not rsDyna.EOF
'-- Stockage de la valeur dans une variable locale
ligne = rsDyna!Iden.Value
rsDyna.MoveNext
If rsDyna.EOF = True Then Exit Do
'-- Comparaison de la variable avec la valeur du recordset
If ligne = rsDyna!Iden.Value Then
rsDyna.Delete adAffectCurrent
rsDyna.Update
rsDyna.MoveFirst
End If
Loop
JPGVB
Messages postés96Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention10 mars 20112 7 avril 2008 à 12:47
Bonjour, si tu étudie la structure de ta base, tu verras qu'en gérant correctement la clé primaire et en définissant pour tes champs s'ils peuvent contenir ou non des doublons, tu évite un balayage de ta table (ce qui peut etre long). Si besoin, tu peux définir une clé primaire formée par plusieurs champs.