Bonjour,
Comme je suis plutôt anti-filtre je propose en premier la solution utilisant une query :
SELECT * FROM TABLE WHERE NOM=:N
à remarquer que j'utilise également un paramètre
on utilisera alors la query de la manière suivante
1 2 3
| Query.Active:=False;
Query.ParamByName('N').asString:=form3.edit2.text;
Query.Active:=True |
Cependant, comme je présume que la table est une table paradox, le filtre peut être plus rapide, encore faut-il l'activer et le rafraichir au besoin
1 2 3
| Table.Filtered:=False;
Table.Filter:=Format('Nom= %s',[quotedStr(Form3.edit2.text)]);
Table.Filtered:=True; |
dans les 2 cas, pour éviter un clignotement désagréable on en profite généralement pour encadrer le code par un DisableControls,EnableControls.
Pour ce qui est de la suite de la question
le but est de récupérer l’enregistrement recherché dans des EDITS avec un clic sur cet enregistrement dans DBGRID
je n'ai malheureusement pas bien compris si les DBEdits sont lié au même datasource que la DBGrid cela ne devrait poser aucun soucis, si les DBEdits sont liés à un autre Datasource et donc une autre TTable il y a des possibilités de synchroniser les 2 tables de plusieurs manières :
de GotoCurrent(<TTableFiltrée>)
à toutes les méthodes permettant de se positionner sur le bon enregistrement (toujours BDE) FindKey,GotoKey etc...
P.S. prenez soin d'indiquer de quel SGBD il s'agit, de quels composants d'accès aux données vous utilisez et d'une manière générale soyez plus explicite (rien ne nous indique si DBGrid fait partie de de la même forme que Form3.Edit2.Text (par pitié mettez des noms explicites) et que les "EDITS" qui à mon avis posent problème parce que justement ce sont des EDITS et non des DBEdits
Partager