Dbgrid mise a jour

Résolu
cs_deubal Messages postés 198 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 août 2009 - 21 nov. 2005 à 13:01
cs_deubal Messages postés 198 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 août 2009 - 21 nov. 2005 à 16:42
bonjour,
dans mon appli j'ai une dbgrid qui est rempli grace a une requete. lors de l'ouverture de l'appli, la dbgrid se rempli une premiere fois avec tout ce uqi est contenu dans la table (select * from matable). or il y a un module de recherche ou l'utilisateur coche ou saisit des infos pour affiner l'affichage des enregistrements de la dbgrid. ma requete fonctionne mais je sais pas comment mettre a jour l'affichage de la dbgrid, j'ai essayé :
marequete.open;
madbgrid.refresh
ou ma dbgrid.update
mais ca fonctionne pas, alors que la source de la dbgrid ets bien marequete. comment je fais??
Merci par avance pour votre aide...
Bonne aprem'

6 réponses

vaughan Messages postés 198 Date d'inscription mardi 6 août 2002 Statut Membre Dernière intervention 29 octobre 2008
21 nov. 2005 à 14:53
Comme ta requête est statique, alors faire :
DataModule2.Query1.Active := False;
DataModule2.Query1.Active := True;

vaughan
3
cs_deubal Messages postés 198 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 août 2009
21 nov. 2005 à 15:09
après avoir testé plein de trucs differents j'ai fait :
Fich_Base_Std1.query_affichfrn.ExecSQL;
Fich_Base_Std1.setfocus;
Fich_Base_Std1.query_affichfrn.Active := true;
et ca fonctionne impec'. enfin ca y est !!
merci d'avoir pris le temps
3
vaughan Messages postés 198 Date d'inscription mardi 6 août 2002 Statut Membre Dernière intervention 29 octobre 2008
21 nov. 2005 à 13:49
Il faut que tu donne le type de datasource de ta DBGrid pour que l'on puisse t'aider.

Pour avancer pour exemple :
Si ton datasource est lié à un TDataset alors il defaut faire,
DataModule2.DataSet1.Refresh;
Si ton datasource est lié à un TQuery alors il te faut faire
DataModule2.Query1.Active := False;
DataModule2.Query1.Active := True;

Syntaxe Delphi :


procedureRefresh;


Syntaxe C++:


void __ fastcallRefresh(void);


Description


Appelez la méthode Refresh pour garantir qu'une application dispose des données les plus récentes d'une base de données.Quand,par exemple,une application désactive le filtrage d'un ensemble de données,elle appelle immédiatement Refresh afin d'afficher tous les enregistrements de l'ensemble de données,et pas uniquement ceux qui ont vérifiéla condition du filtre.


Remarque : La méthode Refresh ne fonctionne pas pour tous les descendants de TDataSet.En particulier,les composants TQuery ne gèrent pas la méthode Refresh si la requête n'est pas dynamique.Pour actualiser un objet TQuery statique,fermez et réouvrez l'ensemble de données.

Voir l'aide Delphi

vaughan
0
cs_deubal Messages postés 198 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 août 2009
21 nov. 2005 à 14:36
le dbgrid est lié à une tdatasource, elle-meme lié à une tquery
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
21 nov. 2005 à 16:10
"Execsql", laisse la requête fermée à la fin.
"Active", l'ouvre.
C'est un peu ce qu'a marqué Vaughan ?

Dom
0
cs_deubal Messages postés 198 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 26 août 2009
21 nov. 2005 à 16:42
j'ai pas dit que ce que vaughan avait ecrit m'a pas aider... j'ai essayé ce qu'il avait ecrit et ca fonctionnait pas, alors j'ai testé differents trucs a partir de ca et voila je suis arrivé à ce code.
0
Rejoignez-nous