Modifier l'enregistrement de la table avec selection sur un dbgrid

[Résolu]
Signaler
Messages postés
2
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
-
Messages postés
2
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
-
Bonjour,

Voila je voudrais savoir si il est possible que lorsque l'utilisateur selectionne une ligne du DBGrid la table correspondante se place sur le meme enregistrement pour pouvoir le modifier grace a une Form differente avec des Tedit?


Voici mon code pour l'appel de la fonction modifier l'enregistrement
procedure TSDIAppForm.Bt_modifierClick(Sender: TObject);
begin
     // Récupére la marque,le nom,le parametre, le prix, la qtéstock etoption et les places dans les Combobox et edit
 form1.marque_combobox.Text:=adoTable1.FieldByName('Marque').AsString;
 Form1.nom_combobox.Text:=adoTable1.FieldByName('Nom').AsString;
 Form1.parametre_combobox.Text:=ADOTable1.FieldByName('Parametre').AsString;
 Form1.prix_edit.Text:=ADOTable1.FieldByName('prix').AsString;
 Form1.qte_edit.Text:=ADOTable1.FieldByName('Qte_en_stock').AsString;
 Form1.Alerte_edit.Text:=ADOTable1.FieldByName('niveau_alerte').AsString;
 Form1.option_checkbox.Checked:=ADOTable1.FieldByName('piece_option').AsBoolean;
     // Affiche la form
 Form1.ShowModal;
end;

et ici le code de modification de la table
procedure TForm1.Bt_applimodifClick(Sender: TObject);
begin
       // Positionne la table en mode Edition
 SDIAppForm.ADOTable1.edit;
       //Place la marque, nom, parametre, prix, qtestock, et option dans la table
 SDIAppForm.ADOTable1.FieldByName('Marque').Value := marque_combobox.Text;
 SDIAppForm.ADOTable1.FieldByName('Nom').Value := Nom_combobox.Text ;
 SDIAppForm.ADOTable1.FieldByName('Parametre').Value := Parametre_combobox.Text ;
 SDIAppForm.ADOTable1.FieldByName('Prix').Value := prix_edit.Text ;
 SDIAppForm.ADOTable1.FieldByName('Qte_en_stock').Value := Qte_edit.Text ;
 SDIAppForm.ADOTable1.FieldByName('Niveau_alerte').Value := alerte_edit.Text ;
 SDIAppForm.ADOTable1.FieldByName('Piece_option').AsBoolean := option_checkbox.Checked ;
        //Enregistre les modification dans la table
 SDIAppForm.ADOTable1.Post;
        //ferme la form
 Close;
end;

2 réponses

Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
Bonjour,

je ne peux tester ton code pour l'instant
mais sur le principe, lors du positionnement d'un enregistrement
dans un grid si bien entendu ton grid est relié à une table,
ce dernier est automatiquement positionné :

A cet instant, deux possiblités existent ,
soit de modifier directement les données dans
le grid (pas très pratique) ou
créer un formulaire lié avec des champs db et faire cette modification dedans.

Ce qui donne une forme avec un grid et
un formulaire le tout en db

classique..

bon courage


cantador
Messages postés
2
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010

Bonjour cantador, et merci pour ta reponse.

En effet la selection se fait bien dans le Grid et dans la table mais j'avais rejouter une programation des items des combobox, par rapport a ma table, a l'ouverture du formulaire de modification, ce qui fesait que la table retourner automatiquement au dernier enregistrement de ma table.

Apres avoir deplacer cette programation la modification se fait correctement. merci