Bonjour [Delphi 7] [dBase 4]
Je crée par programmation une table nommée TableCompte dont l'un des champs (Num_Auto) est défini ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
with FieldDefs do
   begin
       Clear;
        with AddFieldDef do
           begin
              Name := 'Num_Auto';
              DataType := ftInteger;
           end;
Cette table n'est pas indexée.

Quand j'utilise la touche flèche vers le bas pour créer une nouvelle ligne dans mon DBGrid (événement onKeyUp) liée à cette table, le champ Num_Auto se remplit automatiquement (après un incrément) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
case key of
    VK_DOWN:
      begin
          Form2.TableCompte.Edit;
          Form2.Pr_NumAuto:=Form2.Pr_NumAuto+1;
          Form2.TableCompte.FieldByName('Num_Auto').Value:=Form2.Pr_NumAuto;
          // etc...
Ça marche !

Mais quand j'essaie, par un événement ButtonClick, d'ajouter les enregistrements d'une table nommée TableEcheancier à ma TableCompte, je reçois le message "Impossible de modifier le champ Num_Auto" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
  with Form2.TableEcheancier do
     begin
        DisableControls;
        try
          First;
          while not Eof do
             begin
                 Form2.TableCompte.Edit;
                 Form2.TableCompte.Append;
                 Form2.Pr_NumAuto:=Form2.Pr_NumAuto+1;
                 Form2.TableCompte.FieldByName('Num_Auto').Value:=Form2.Pr_NumAuto; // ligne génératrice de l'erreur
                 // etc...  chargement d'autres champs
Mais si je supprime la dernière ligne (génératrice de l'erreur), les autres champs de TableCompte se chargent normalement à partir de TableEcheancier .

Merci d'avance pour votre aide.
Cordialement.
Alain