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 :
Le DBLCB_Actions se peuple correctement à l'activation de cet évènement.
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;
L'évènement OnSelect de ce même DBLCB_Actions contient le code suivant :
À l'exécution surgit l'erreur suivante :
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;
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.
Partager