IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Recherche enregistrements doublon [D7][ACCESS][ADO]


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 118
    Points : 89
    Points
    89
    Par défaut Recherche enregistrements doublon [D7][ACCESS][ADO]
    Bonjour
    je voudrais faire la recherche des enregistrements doublon d'un ADOTable et le mettre dans un autre ADOTable sans le supprimer de premier(dire par doublon tous les valeurs des champs sont identique sauf code(clé primaire))

    J'ai pensé a ca mais ca n'a pas marché

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    table1.first;
    table2.first;
    while not table1.eof do
       begin
         val1:=table1.fieldbyname('nom').value;
         val2:=table1.fieldbyname('prenom').value;
             ..
            ....
         valn:=table1.fieldbyname('adresse').value;
           while not table1.eof do
            begin
       if(val1=table1.fieldbyname('nom').value)and(val2=table1.fieldbyname('nom').value)and.....
               begin
                 table2.append;
                 ...
                 ....
                 table2.post;
               end;
             table1.next;
           end;
         table1.next;
      end;
    le pb peut etre se trouve dans le positionement du pointeur dans table1(utiliser par les deux boucles)et l'enregistrement eux meme.
    il ya une méthode de sauveguarder la position du pointeur de la premiere boucle pour le retrouver apres?
    OU
    il ya une autre manière plus fiable de faire ce programme?

    merci d'avance

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Avec une requete ca serait plus simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select nom,prenom, count(*) as Resultat from TA_Table
    Group by Nom,Prenom
    Cette requete te donnera le nombre de fois qu'il y a le couple nom/prenom dans la table.
    Si Resultat est > 1 c'est que tu as un doublon.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 118
    Points : 89
    Points
    89
    Par défaut
    merci Malatar pour la reponse
    votre requete marche trés bien
    mais en cherchant sur acces j'ai trouvé un assistant de creation de requete qui affiche tous les doublon ,en basculant en mode SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT client.nom, client.prenom, client.codecli, client.adresse, client.val_cli
    FROM client
    WHERE (((client.nom) In (SELECT [nom] FROM [client] As Tmp GROUP BY [nom],[prenom] HAVING Count(*)>1  And [prenom] = [client].[prenom])))
    ORDER BY client.nom, client.prenom;
    que je trouve plus proche a mon pb!!


  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par fthdz
    merci Malatar pour la reponse
    votre requete marche trés bien
    mais en cherchant sur acces j'ai trouvé un assistant de creation de requete qui affiche tous les doublon ,en basculant en mode SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT client.nom, client.prenom, client.codecli, client.adresse, client.val_cli
    FROM client
    WHERE (((client.nom) In (SELECT [nom] FROM [client] As Tmp GROUP BY [nom],[prenom] HAVING Count(*)>1  And [prenom] = [client].[prenom])))
    ORDER BY client.nom, client.prenom;
    que je trouve plus proche a mon pb!!

    En rouge : il s'en sert même pas dans le code
    L'optimisation ACCESS
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 118
    Points : 89
    Points
    89
    Par défaut
    exactement Malatar apres plusieurs essai j trouvé que votre code est la meilleur solution pour mon probleme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher des doublons dans ACCESS(quasi doublons)
    Par ingal30 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 10/03/2010, 13h57
  2. Recherche enregistrement avec ADO
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/05/2007, 22h00
  3. [D7],[Access],[ADO],enregistrer une erreur dans un fichier log
    Par iam dans le forum Bases de données
    Réponses: 9
    Dernier message: 16/04/2007, 18h24
  4. [delphi7][access][ado]pb d'affichage des enregistrements
    Par alibabas dans le forum Bases de données
    Réponses: 8
    Dernier message: 29/07/2006, 18h46
  5. Réponses: 2
    Dernier message: 19/08/2003, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo