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 :

Fusionner 2 tables ADO


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 86
    Points
    86
    Par défaut Fusionner 2 tables ADO
    Bonjour amis developpeurs(se) ,

    Je vous expose mon probleme que j'ai rencontré avec delphi7 Entreprise et Access. Le but de mon programme et de ajouter des frais contenus dans db1 avec les ecritures associées (valeur 'piece' identique) contenus dans db.
    j'ai le message " La ligne n'a pas pu etre trouvée pour la mise a jours, Certaines valeur on peut etre changée depuis leur dernière lecture ".

    Voici le code associé.

    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
    procedure FusionFrais (var db,db1:Tadotable);
     var v,s:string;
     
    begin
    db1.First;
    while not db1.Eof do
      begin
         v:=db1.FieldByName('montant').AsString;
         s:=db1.fieldbyname('piece').asstring;
         if (db.locate('piece',s,[])) then
     
           begin
           db.edit;
           db.FieldByName('frais').asstring:= v;
           db.Post ;
           end;
     
        db1.Next;
      end;
     
    end;
    Etant debutant avec l'ADO , je vous prie de me montrer mon erreur , Mes remerciment d'avance .

  2. #2
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    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
    procedure FusionFrais (var db,db1:Tadotable);
     var v,s:string;
     
    begin
    db1.First;
    while not db1.Eof do
      begin
         v:=db1.FieldByName('montant').AsString;
         s:=db1.fieldbyname('piece').asstring;
         if (db.locate('piece',s,[])) then
     
           begin
           db.refrech // <--- ajoute sa  
           db.edit;
           db.FieldByName('frais').asstring:= v;
           db.Post ;
           end;
     
        db1.Next;
      end;
     
    end;

  3. #3
    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 aityahia
    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
    procedure FusionFrais (var db,db1:Tadotable);
     var v,s:string;
     
    begin
    db1.First;
    while not db1.Eof do
      begin
         v:=db1.FieldByName('montant').AsString;
         s:=db1.fieldbyname('piece').asstring;
         if (db.locate('piece',s,[])) then
     
           begin
           db.refrech // <--- ajoute sa  
           db.edit;
           db.FieldByName('frais').asstring:= v;
           db.Post ;
           end;
     
        db1.Next;
      end;
     
    end;

    Ne surtout pas faire ce que propose aityahia
    Car après un refresh, la table est repositionnée sur le premier enregistrement.
    Le refresh est comme un Close/open donc ca ne remplira que le premier enregistrement avec le calcul.
    Modérateur Delphi

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

  4. #4
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 86
    Points
    86
    Par défaut
    Merci a vous deux , ça marche impec

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ne surtout pas faire ce que propose aityahia
    Car après un refresh, la table est repositionnée sur le premier enregistrement.
    Le refresh est comme un Close/open donc ca ne remplira que le premier enregistrement avec le calcul
    Il fau essayer j'ai eu se probleme j'ai vraiment souffert et j'ai pu regler le problemme de cette maniere, en plus le refresh je position pas sur le premier enregistrement. c avant le edit qu'il a était appeler.

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

Discussions similaires

  1. fusionner 2 tables de structure différente
    Par Rcanada dans le forum Access
    Réponses: 9
    Dernier message: 21/04/2006, 09h54
  2. [EvariantTypeCastError] à l'ouverture d'une table ADO
    Par vali dans le forum Bases de données
    Réponses: 1
    Dernier message: 03/02/2006, 18h29
  3. Fusionner deux tables
    Par rdjema dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2005, 18h42
  4. Fusionner 2 tables Access
    Par zangel dans le forum Access
    Réponses: 7
    Dernier message: 02/11/2005, 08h33
  5. fusionner 2 tables dont les champs sont identiques mais.....
    Par NoobX dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/10/2005, 16h12

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