Modifier l'enregistrement de la table avec selection sur un dbgrid [Résolu]

morphman59 2 Messages postés jeudi 11 mars 2010Date d'inscription 19 mars 2010 Dernière intervention - 18 mars 2010 à 03:58 - Dernière réponse : morphman59 2 Messages postés jeudi 11 mars 2010Date d'inscription 19 mars 2010 Dernière intervention
- 19 mars 2010 à 14:51
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;
Afficher la suite 

2 réponses

Répondre au sujet
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 19 mars 2010 à 13:51
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_cantador
morphman59 2 Messages postés jeudi 11 mars 2010Date d'inscription 19 mars 2010 Dernière intervention - 19 mars 2010 à 14:51
0
Utile
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
Commenter la réponse de morphman59

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.