Salut

Voila j'ai deux tables la 1ere TABLE AUTEUR et la 2ème TABLE ECRIRE. j'ai deux clefs primaire dans AUTEUR qui sont NOM_AUTEUR et PRENOM_AUTEUR et dans la TABLE ECRIRE ce sont des clefs externe (NOM_AUTEUR et PRENOM_AUTEUR) ce que j'aimerai savoir faire c'est lorsque je modifie mes champs NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Auteur que celle ci change NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Ecrire également. J'ai deja un code pour modifier NOM_AUTEUR et PRENOM_AUTEUR dans la gestion Auteur elle fonctionne mais elle modifie pas les champs NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Ecrire.

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
var
  OldType,OldType1,OldType2,OldType3 :string; // Déclaration de variable
  OldType4,OldType5 :string;
 
procedure TGes_Auteur.Modifier_AuteurClick(Sender: TObject);
begin
  if  (edit1.Text = '')or (edit2.Text = '')or (edit3.Text = '')or (edit4.Text='') then
      begin
         messagedlg('Veuillez sélectionner le champs à supprimer', mtWarning,[mbok],0);
      end
  else
      with DataModule2.IBQuery_Auteur do
        begin           // Ici on modifie les champs sélectionner
          SQL.Clear;
          SQL.Add('Update AUTEUR set NOM_AUTEUR=:Nom_Auteur, PRENOM_AUTEUR=:Prenom_Auteur, PSEUDONYME=:Pseudonyme, NATIONALITE=:Nationalite');
          SQL.Add('WHERE NOM_AUTEUR = :OldType and PRENOM_AUTEUR = :OldType1 and PSEUDONYME = :OldType2 and NATIONALITE=:OldType3 ');
          DataModule2.IBQuery_Auteur.ParamByName('Nom_Auteur').AsString:=edit1.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType').AsString:=OldType;
          DataModule2.IBQuery_Auteur.ParamByName('Prenom_Auteur').AsString:=edit2.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType1').AsString:=OldType1;
          DataModule2.IBQuery_Auteur.ParamByName('Pseudonyme').AsString:=edit3.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType2').AsString:=OldType2;
          DataModule2.IBQuery_Auteur.ParamByName('Nationalite').AsString:=edit4.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType3').AsString:=OldType3;
          ExecSQL;
        end;
      with DataModule2.IBQuery_Ecrire do
        begin
          SQL.Add('Update ECRIRE set NOM_AUTEUR=:Nom_Auteur, PRENOM_AUTEUR=:Prenom_Auteur');
          SQL.Add('WHERE NOM_AUTEUR = :OldType4 and PRENOM_AUTEUR = :OldType5 ');
          DataModule2.IBQuery_Ecrire.ParamByName('Nom_Auteur').AsString:=Ges_Auteur.edit1.text;
          DataModule2.IBQuery_Ecrire.ParamByName('OldType4').AsString:=OldType4;
          DataModule2.IBQuery_Ecrire.ParamByName('Prenom_Auteur').AsString:=Ges_Auteur.edit2.text;
          DataModule2.IBQuery_Ecrire.ParamByName('OldType5').AsString:=OldType5;
        end;
          Refresh_Auteur.Click; //Bouton qui rafraichi la table AUTEUR
          edit1.Text:='';
          edit2.text:='';
          edit3.Text:='';
          Ajouter_Auteur.Enabled:=true;
          Modifier_Auteur.Enabled :=false;
          Supprimer_Auteur.Enabled :=false;
          Ges_Ecrire.Refresh_Ecrire.click;
end;
P.S: La requête fonctionne mais elle modifie pas les champs NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Ecrire