Je fais appel à votre savoir car je n'y arrive pas
J'ai un DBGrid dans un form qui est relié à une base access.
je charge mon application pas de probléme les données de la base sont présentes.
J'ai fais une liaison DBGrid - Datasource - Dataset - Connection
avec les composants TDBGrid, TDatasource, TADOTable, TADOConnection.
Que tu bonheur jusque là.
J'ajoute (ou supprime) une enregistrement.
Un coup sur x (x variable de 1 à 5) l'enregistrement ne s'affiche pas dans le DBGrid mais est systématiquement dans la base.
Pourquoi , je le sais? J'ouvre la base et je regarde et/ou j'ai créé en parraléle un TSringGrid qui me charge les données (mais c'est pas optimisé).
J'ai parcouru le net, le forum mais tout ce que j'ai vu (refresh, close open marche pas).
J'ai essayé.
Refresh en DBGRID, DATASOURCE,DATASET
OPEN CLOSE tout ce qui est possible
Repaint le dbgrid
Pour être précis : Je modifie ma base en me servant d'un ADOQuery
La table est initialisée comme suit :
la connexion comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with ADOTableCommandes do begin ConnectionString:= ADOConnection1.ConnectionString; TableName:='LesCommandes'; IndexFieldNames :='Num'; Close; Open; Active:=True; end;
Un petit aperçu de mets test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ADOConnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + string(buffer)+ '\DataBase\Data.mdb;Persist Security Info=False'; ADOConnection1.Connected :=True;
ou ailleur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // ObjectIHM.DBGridCommandes.DataSource.DataSet.RecordCount; // ObjectIHM.DBGridCommandes.Refresh; // ObjectIHM.DBGridCommandes.Repaint;
je sature.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 with ObjectIHM.DBGridCommandes do begin FormulaireSaisieInfoCommande.openForm(ObjectIHM,ObjectDatabase); // DataSource.DataSet.Refresh; // DataSource.DataSet.Open; // refresh; end; // with ObjectIHM.DBGridCommandes.DataSource.DataSet.RecordCount; //ObjectIHM.DBGridCommandes.Refresh; ObjectIHM.DBGridCommandes.Repaint;
help
Partager