[DBGrid + Combobox] Pointer directement sur la ligne du DBGrid ou la valeur d un

Signaler
Messages postés
7
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
11 juin 2004
-
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
-
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 ^^
A voir également:

7 réponses

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
5
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;

En esperant avoir repondu à tes attentes.

Bonne prog,
JMP.
Messages postés
7
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
11 juin 2004

Merci je vais essayer ca tout de suite :)
Messages postés
7
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
11 juin 2004

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 :

DBComboBox1.Items.Add(personnel.Fields[0].Value);
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
5
Et bien ecoute moi je ferrais comme cela :

DBComboBox1.items.Add(Personnel.fields[0].value + ' ' + Personnel.Fields[1].Value);
{Avec
Fields[0] = Le nom
Fields[1] = le prenom}

J'espere que ca t'aide.

Bonne prog,
A+
Messages postés
7
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
11 juin 2004

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 :)
Messages postés
7
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
11 juin 2004

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 :)
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
5
de rien.

Bonne prog et à une prochaine peut etre.

JMP.