[DBGrid + Combobox] Pointer directement sur la ligne du DBGrid ou la valeur d un
eshin
Messages postés7Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention11 juin 2004
-
8 juin 2004 à 12:03
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 2006
-
8 juin 2004 à 15:05
Bonjour , j aimerais savoir comment faire pour que lorsque l utilisateur selectionne un "nom" dans le combobox , la DBGrid pointe directement sur la ligne correspondant a ce nom . le combobox et la DBGrid sont relies a une table [ paradox , delphi 7 , BDE ].Merci d avance ^^
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 8 juin 2004 à 12:54
Salut,
Ben sur l'evenement on change du combobox tu filtres ta base de données comme ceci :
procedure TForm1.ComboBox1.OnChange(Sender : TObject);
begin
{Table1 étant la table qui est connecté à ton dbgrid}
Table1.Filter := 'NomDuChamp=' + QuotedStr(ComBoBox1.Text);
Table1.Filtered := True;
end;
eshin
Messages postés7Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention11 juin 2004 8 juin 2004 à 14:36
Hehe merci Jmp , au debut ca marchait pas car j avais remplace table1 par le nom de la table concernee et j avais oublie que en fait la DBGrid etait connectee a un query .
Par contre je suis oblige d associer ce code a un bouton car c est etrange mais quelque soit l action l evenement onchange du combobox ne s active pas :/ En plus ton procede est bien propre puisqu on ne voit plus que la ligne voulue dans la DBGrid ^^
Sans vouloir abuser aurais tu une idee de la syntaxe a employer pour que dans le combobox il y ait un espace entre le nom et le prenom car je n arrive qu avoir le nom et le prenom collé.
Sachant que pour afficher seulement le nom j ai ca :
eshin
Messages postés7Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention11 juin 2004 8 juin 2004 à 14:48
Merci encore , ca marche . J y etais presque il me manquait le + apres les ' ' . J avais essaye toute sorte de combinaison avec des "" des , mais a chaque fois il refusait de compiler a cause de la syntaxe.La c est nikel un grand merci a toi :)
eshin
Messages postés7Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention11 juin 2004 8 juin 2004 à 15:04
Decidement a chaque fois qu on resout un probleme , un nouveau apparait : en effet maintenant le text de combobox contient 'nom prenom' et precedement on a ecrit :
query1.Filter := 'Nom=' + QuotedStr(dbComBoBox1.Text);
Ce qui fait que maintenant il n affiche plus rien dans la DBGrid ( c est normal tu me diras :-) ).
J ai donc essaye de bidouiller en mettant :
query1.Filter := 'Nom prenom=' + QuotedStr(dbComBoBox1.Text); ou query1.Filter := 'Nom' 'prenom=' + QuotedStr(dbComBoBox1.Text); et d autres syntaxes encore
Mais rien n y fait , il compile sans probleme cependant lorsque je fais appel a cette ligne de code il me sort un message d erreur : expression filtre terminee incorrectement.
(Je ne sais pas si le filtre peut agir sur 2 champs en meme temps).Si tu ne vois pas de solution c est pas grave tu en as deja beaucoup fait . Au pire des cas je laisserais juste le nom dans le combobox en esperant qu il n y aura pas trop de doublon :)