Bonjour à toutes et à tous. Encore et toujours besoin de vous.
Sur une fiche j'ai déposé :
  • un TZQuery (Requete_Actions),
  • un TDataSource (Source_Actions),
  • un TDBLookupComboBox (DBLCB_Actions),
  • un TEdit (Edition_Nombre).

L'évènement OnDropDown du DBLCB_Actions contient le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
procedure TFiche_Modifier_Compte.DBLCB_ActionsDropDown(Sender: TObject);
begin
  Requete_Actions.Close;
  Requete_Actions.SQL.Text := 'SELECT act_id, act_valeur FROM s_ent.t_e_action_act ';
  Requete_Actions.SQL.Add('ORDER BY act_valeur;');
  Requete_Actions.Open;
  end;
Le DBLCB_Actions se peuple correctement à l'activation de cet évènement.
L'évènement OnSelect de ce même DBLCB_Actions contient le code suivant :
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
procedure TFiche_Modifier_Compte.DBLCB_ActionsSelect(Sender: TObject);
var
  V_Action : variant;
  I_Action : integer;
begin
  V_Action := DBLCB_Actions.KeyValue;
  I_Action := V_Action;
  LNombre.Enabled := true;
  Edition_Nombre.Enabled := true;
  Requete_Actions.Close;
  Requete_Actions.SQL.Text := 'SELECT cma_id FROM s_ent.t_j_compte_action_cma ';
  Requete_Actions.SQL.Add('WHERE act_id = :ACTION AND cpt_id = :COMPTE;');
  Requete_Actions.Params.ParamByName('ACTION').AsInteger := I_Action;
  Requete_Actions.Params.ParamByName('COMPTE').AsInteger := Fiche_Accueil.Compte;
  Requete_Actions.Open;
  //CmaId := Requete_Actions.FieldByName('cma_id').AsInteger;
  CmaId := Requete_Actions.Fields[0].AsInteger;
  Requete_Actions.Close;
end;
À l'exécution surgit l'erreur suivante :
Nom : 2023-08-24 18 14 16.jpg
Affichages : 113
Taille : 33,1 Ko
J'ai déposé un point d'arrêt en début du code de TFiche_Modifier_Compte.DBLCB_ActionsSelect(Sender: TObject). Tout se déroule correctement jusqu'à l'affectation de CmaId par l'une des deux méthodes, celle commentée ou l'autre. Je ne vois pas pourquoi le champ act_valeur n'est pas trouvé.
Merci d'avance à celles ou ceux qui me dépanneront.
Michel.