J'ai fais une requete sql sous vb6 pour selectionner des lignes sans doublons au niveau de champ telephone, mais je rencontre une erreur lors de l'execution. Le programme ne connait plus la fonction Distinct pour un seul champ.
La requete est comme suit:
Select nom, prenom, ville, distinct(telephone)
From Client;
Salut,
L' idéal c' est :
1-Créer à l' identique une copie de ta table.
2-Faire une requete de type
Select First(nom), First(prenom), First(ville),
First(telephone)From Client GROUP BY
First(nom), First(prenom), First(ville),
First(telephone).
3-Insèrer le résultat dans la table temporaire
4-Vider la table originale
5-Insèrer le contenu de la table temporaire dans l'originale.
L' avantage c' est qu' on peut le faire sans passer par l' interface Access.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
le DISTINCT (en tout cas chez moi et apparemment chez chefinf) ne fonctionne pas.
même résultat avec DISTINCTROW
testé sous ACCESS 2000 uniquement.
"ne fonctionne pas" = retourne tous les champs (donc sans distinction)
obligé de l'utiliser sur un seul champ (comme l'exemple que j'ai indiqué, en tant que FROM)
pas d'autre base ni moteur testable pour le moment...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
J'ai testé votre requête sous Access 2000 une autre fois, Mr. PCPT , mais il me demande d'entrer les valeurs: prenom et ville, (comme une requête parametrée) au lieu de faire une sélection à partir de la table.
Ce que m'etonne que les numéros de telephone s'affichent sans doublons comme on veut exactement, la colonne Nom contienne: "Microsoft Access"
et les colonnes Prenom et Ville contiennent les valeurs demandées comme paramètre.
dès que tu refais le test tu as un autre résultat....
si tu ne nous dis la chaine sql que tu exécutes, on ne risque pas de savoir d'où vient le problème....
forcément tu as modifié ma chaine fournie, elle basée sur le nom des champs que tu avais indiqué (qui peuvent aussi être erronés), on ne s'en sortira jamais ^^
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Mon problème c obtenir une solution avec une requêtte sql contenant la solution, c'est pas avec Access. Alors j'ai une solution rapide avec acces, la voilà:
La suppression des doublons d'enregistrements d'une table comprend deux étapes. Créez d'abord une copie de la structure de la table qui contient les doublons et faites des clés primaires de tous les champs contenant des doublons. Ensuite, créez et exécutez une requête Ajout de la table d'origine vers la nouvelle table. Comme les champs qui sont des clés primaires ne peuvent pas contenir de doublons, cette procédure génère une table sans doublon.
Pour copier la table et faire des clés primaires des champs contenant des doublons
<ol><li>Sélectionnez la table dans la fenêtre Base de données.
</li><li>Cliquez sur Copier dans la barre d'outils.
</li><li>Cliquez sur Coller dans la barre d'outils.
</li><li>Dans la boîte de dialogue Coller la table sous, tapez un nom pour la table copiée, cliquez sur Structure seulement, puis sur OK.
</li><li>Ouvrez la nouvelle table en mode Création et sélectionnez les champs qui contiennent des doublons.
</li><li>Cliquez sur Clé primaire dans la barre d'outils pour créer une clé primaire en fonction des champs sélectionnés.
</li><li>Enregistrez et fermez la table. </li></ol>Pour ajouter seulement les enregistrements uniques à la nouvelle table
<ol><li>Créez une nouvelle requête en fonction de la table d'origine contenant les doublons.
</li><li>En mode Création de requête, cliquez sur Type de requête dans la barre d'outils, puis sur Requête Ajout.
</li><li>Dans la boîte de dialogue Ajout, cliquez sur le nom de la nouvelle table dans la liste Nom table, puis sur OK.
</li><li>Incluez tous les champs de la table d'origine en faisant glisser l'astérisque (*) dans la grille de création de la requête.
</li><li>Cliquez sur Exécuter dans la barre d'outils.
</li><li>Cliquez sur Oui lorsque vous recevez le message vous indiquant que vous allez ajouter des lignes.
</li><li>Cliquez sur Oui lorsque vous recevez le message indiquant que Microsoft Access ne peut pas ajouter tous les enregistrements dans la requête Ajout. Cette opération transfère seulement des enregistrements uniques vers votre nouvelle table et supprime les doublons. </li></ol>Ouvrez la table pour voir les résultats. Lorsque vous êtes certain que la nouvelle table contient les enregistrements uniques corrects, vous pouvez supprimer la table d'origine et attribuer à la nouvelle table le nom de la table d'origine.