Bonjour à tous,
J'aimerai bien modifier et supprimer des enregistrements dans ma base de donnée directement dans un TDBGrid ( c'est à dire sans avoir besoin par exemple d'un formulaire pour modifier un enregistrement).
Version imprimable
Bonjour à tous,
J'aimerai bien modifier et supprimer des enregistrements dans ma base de donnée directement dans un TDBGrid ( c'est à dire sans avoir besoin par exemple d'un formulaire pour modifier un enregistrement).
Bonjour.
Voici un exemple de fiche qui permet de supprimer ou modifier un enregistrement d'une table existante.
Les boutons premier, suivant, ... permettent de se déplacerCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables, StdCtrls; type TFichSt = class(TForm) DSst: TDataSource; Tbst: TTable; DBGst: TDBGrid; DBNavst: TDBNavigator; Labst: TLabel; // sous titre dans la fiche private { Déclarations privées } public { Déclarations publiques } procedure TbSup(NomTab, TitreFic : string); procedure TbModif(NomTab, TitreFic : string); end; var FichSt: TFichSt; implementation {$R *.DFM} procedure TFichSt.TbSup(NomTab, TitreFic : string); // suppression d'un enregistrement begin Tbst.TableName := NomTab; Caption := TitreFic; // titre de la fiche TbSt.Active := False; TbSt.ReadOnly := False; LabSt.Caption := 'SUPPRESSION d''une LIGNE'; DBNavSt.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast,nbDelete, nbCancel,nbPost]; TbSt.Active := True; TbSt.Last; ShowModal; DBGst.Enabled := True; end; procedure TFichSt.TbModif(NomTab, TitreFic : string); // modification begin Tbst.TableName := NomTab; Caption := TitreFic; TbSt.Active := False; TbSt.ReadOnly := False; try LabSt.Caption := 'MODIFICATION d''une LIGNE'; DBNavSt.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast,nbEdit, nbCancel,nbPost]; TbSt.Active := True; TbSt.Last; ShowModal; finally DBGst.Enabled := True; TbSt.ReadOnly := True; TbSt.Close; Tbst.TableName := ''; end; end; End.
supprimer ou éditer remplissent les fonctions
ne pas oublier "post" pour enregistrer.
PL
salut,
ça se fait sans coder (dbgrid+dbnavigator), pourquoi compliquer quant on peut faire simple?
:ccool:
OK liazidf,
Peux-tu mettre un petit code d'exemple?
merci:ccool:
Bon dimanche!!!:yaisse2:
PhilLu
ça depend de quel SGBD tu utilise.
sinon tu peut faire simple: dbgrid.datasource.dataset.delete
Avec MySQL et DBExpress
Bonjour,
En complément @liazidf, en local, il faut aussi unTDataSource et un TTable pour accéder au fichier, c'est le minimum.
On peut réunir les fonctions dans une même fiche, mais par expérience, avec un service achat, je préférais les séparer.
PL