begin process at 2013 05 25 15:16:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

Autre

 > 

Recherche/Filtrage Multicriteres dans une base de donnees a l'aide d'une combobox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche/Filtrage Multicriteres dans une base de donnees a l'aide d'une combobox

vendredi 26 octobre 2012 à 18:21:24 | Recherche/Filtrage Multicriteres dans une base de donnees a l'aide d'une combobox

Aklissj5

Bonjour :)

Bon voila le topo :D

Je veux pouvoir effectuer des opérations de filtrage et de recherche dans les différents champs de ma base de données (Nom, prénom, adresse etc...) et cela si possible en ayant la possibilité de sélectionner le champ adéquats à l'aide d'une Combobox.

Voici le code régissant la fonction de recherche (uniquement sur le champ 'nom'):

Code Delphi :
procedure TForm1.BrechercheClick(Sender: TObject);
Var Option: TLocateOptions;
begin
If ((Table1.recordcount=0) and (table1.state<>dsinsert))then
exit;
if erechnom.Text<>'' then
begin
Option:=[loPartialKey]; //pour ne pas faire attention a la casse
Table1.Locate('nom',erechnom.Text,Option)
end;
end;


Voici le code régissant la fonction de filtrage (uniquement sur le champ 'nom'):
Code Delphi :
procedure TForm1.EfiltreNomChange(Sender: TObject);
var Filtre:string;
begin
//Construction du filtre
Filtre:='nom ='''+ efiltrenom.Text +'*''';
If ((Table1.recordcount=0) and (table1.state<>dsinsert))then
exit;
If efiltrenom.Text='' then
begin
Table1.Filtered:=false; //arrete le filtrage
exit;//quiter la méthode
end;
Table1.Filter:=Filtre; //mise en place du filtre
Table1.Filtered:=True; //activation du filtre
end;


Jusqu'ici tout fonctionne bien (sans la combobox)lol

En gros la question qui se pose est : Comment dois-je m'y prendre pour faire correspondre les champs de ma base avec les items de ma combobox pour ainsi effectuer les opération de filtrage et de recherche ?

J'espère que c'est assez claire car au départ j'avais tapé un long message explicatif que j'ai malencontreusement perdu a la suite d'une fausse manipp xD n'hésitez pas a demander des précision si besoin ;)


Merci :)
vendredi 26 octobre 2012 à 19:35:08 | Re : Recherche/Filtrage Multicriteres dans une base de donnees a l'aide d'une combobox

PythonGreg

Membre Club

Bonsoir Aklissj5

Je te conseille le composant AdoQuery
Voici un filtre sur un base de données

Code Delphi :
Procedure TForm1.ComboBox1Change (Sender : TObject) ;
Begin
AdoQuery.Active := False ;
AdoQuery.Sql.Text := ‘Select * form (1) Where (2) = QuotedStr(ComboBox1.texte)
AdoQuery.Active := True;
End;


1 : Le nom de la Table
2 : Le nom de la Zone que tu veu filtré

Exemple :
ComboBox1.Items.add('A');
ComboBox1.Items.add('B');
ComboBox1.Items.add('C');
Exemple
- Ma table du nom : BaseD
- le champ de ma table s'appéle 'Nom'
Pour filtré tout les noms qui commence par la lettre 'B'

Code Delphi :
Procedure TForm1.ComboBox1Change (Sender : TObject) ;
Begin
AdoQuery.Active := False ;
AdoQuery.Sql.Text := ‘Select * form BaseD Where Nom= QuotedStr(ComboBox1.texte)
AdoQuery.Active := True;
End;


Conclusion tout les noms qui commence par la lettre 'B' son afficher
samedi 27 octobre 2012 à 00:52:49 | Re : Recherche/Filtrage Multicriteres dans une base de donnees a l'aide d'une combobox

Aklissj5

Merci pour ta réponse :)

Avec un peu de tâtonnement j'y suis arrivé à l'aide d'une méthode beaucoup plus simple :p

J'ai ajouté ma combobox, puis j'ai inséré le code suivant dans l'évènement OnCreate de ma forme pour que les champs de ma BD correspondent avec les items de ma combobox :D

Code Delphi :
combobox1.Items:=table1.FieldList;
combobox1.Text:='';


Ensuite j'ai fait correspondre le texte sélectionné dans ma combobox avec qui doit y être affiché dans l'évènement OnSelect de ma combobox :p

Code Delphi :
combobox1.Text:=combobox1.SelText;


Et enfin, j'ai configuré mon filtre pour qu'il tienne compte du contenu de "combobox1.text" dans son opération de filtrage :P

Code Delphi :
Filtre:= combobox1.Text + '=''' + efiltrenom.Text +'*''';


Et Hop ! voila une affaire rondement mené comme dirait l'autre :D je vais de ce pas appliquer cette méthode à la fonction de recherche (ce qui, j'espère, ne me poseras pas de problèmes x)...)

Merci encore :)
mardi 30 octobre 2012 à 11:57:00 | Re : Recherche/Filtrage Multicriteres dans une base de donnees a l'aide d'une combobox

simonpelloquin

Membre Club

Salut,

Dans : combobox1.Text + '=''' + efiltrenom.Text +'*''';
Fais attention si ton "efiltrenom.Text" contient des apostrophes...

Simon


Cette discussion est classée dans : code, recherche, filtre, filtrage, table1


Répondre à ce message

Sujets en rapport avec ce message

Toujours le problème de filtrage [ par youhibadelphi ] Salut J’ai posé un problème concernant le filtrage des enregistrements mais malheureusement la discussion a été clôturée par l'administration pour des Comment Faire une recherche d'un enregistrement pour la modification d'information [ par CHAFID ] voila ma question je voudrais savoir comment faire une recherche d'un enregistrement pour la modification d'information la clé de la recherche étant comment realiser une recherche avec TadoTable ou relation un a plusieurs en adoquery(SQL) [ par samadblue ] javascript:Insert_Emoticon('/imgs2/smile.gif');Bonsoir tlm ! Aidez Moi svp : Voila le topo: Mon Projet : Base de données ACCESS 2000 Table : Patient Juste pour un affichage peu particulier sur mon Etat d'impression. [ par jennybless ] Salut ! J’ai un petit problème de logique. Pouvez-vous m’aider en lisant d’abord mes codes: J’ai trois champs : CODE, A, B J’aimerai qu’à chaque foi Bouton terminer 3ème étapes pour poster un code [ par piette ] salut,merci à Bacterius  et ...\ Dan /...pour leurs réponses. Je m'aperçois que ma question n'est pas assez précise.Je recherche, pour déposer un code Recherche code source Delphi pour interfacer Webcam Logitech [ par colorid ] jpg Bonjour, Quelqu'un peut-il me fournir un lien pour télécharger le code source D2007 d'une interface webcam mogitech ? Merci à tous Recherche de fichiers [ par mnTUp ] Slaut tt le monde, J'ai besoin d'ouvrir un dialog(openDlg, par exp) et lui donner un string comme Filtre pour la recherche(le nom du fichier que j'ai Recherche un code source avec un base access + password [ par PythonGreg ] Bonjour Je suis à la recherche d’un exemple de code source qui a un rapport avec une base de données access avec un mot de passe à la base de donnée filtrer table paradox [ par impossibleok ] bonjour;SOS, le code qui suit marche nickel Filtre := 'Nom =''' + recherche.Text + '*''';  Table1.Filter := Filtre;ça filtre les enregistre Filtre Sur Deux DbGrid [ par siahmedaek ] salut... j'ai Vu le sujet posté (Filtre sur l'evenement OncellClic) et j'ai cru que c peut etre ca ressemble a ma quetion mais.... ------> dabord j'ai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,558 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales