Filtre query

forfaitaire
Messages postés
5
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
30 décembre 2009
- 14 mars 2008 à 16:39
HAFTARIFOUAD
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011
- 15 mars 2008 à 09:33




6 réponses

forfaitaire
Messages postés
5
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
30 décembre 2009

14 mars 2008 à 17:03
Bon Soir
Jai deux tables:
1Article(article;code_article;annee)
2Annee(annee)
-dans form1 un dblookupcombobox1 pour les annee de table annee
-dans form2 une query et son dbgrid
-la requette est de selectionner les articles de table article
-Le probleme: je veux afficher dans dbgrid de query les articles suivant l'annee indiqué dans dblookupcombobox1
Je pense que je doigt faire un filtre de query mais comment
0
HAFTARIFOUAD
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011

14 mars 2008 à 20:06
Bonjour

En réponse à votre question "L'application du filtre sur un TQuery", vous pouvez utiliser l'une des deux méthodes suivantes:

1ère méthode: l'application du filtre comme tous autre composants tels TTable et TAdoTable et ...

// création du filtre
Form2.NomTable.Filter:= Annee= ''' + DBLookupComboBox.Text + '*''';
// Accepter le filtre
Form2.NomTable.Filtered :=true ;
0
HAFTARIFOUAD
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011

14 mars 2008 à 20:14
HAFTARI Fouad
0
HAFTARIFOUAD
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011

14 mars 2008 à 20:21
Désolé pour l'erreure

La deuxième 2ème méthode sert à appliquer les requêtes SQL sur votre TQuery voila un petit exemple:

Form2.Query.Active:=false;
Form2.Query.SQL.Clear;
Form2.Query.SQL.Add( 'Select * From NomDeVotreTable.DB');
Form2.Query.SQL.Add ('WHERE (Upper(Annee) LIKE "%'+ AnsiUpperCase(DBLookupComboBox.Text)+'%")');
Form2.Query.Active:=true;

Les '%' servent de trouver le résultat le plus proche à l'entrée, CAD; si l'année figurant sur la table est 2004 ParEx il vous suffit d'entrer soit: 2,20,200,2004,004,04,4

Bonne chance et bonne continuation
0

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

Posez votre question
forfaitaire
Messages postés
5
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
30 décembre 2009

14 mars 2008 à 21:11
Bon Soir
et maintenant je veux inserer dans cette requette filtrée des enreigistrements
voila le code que j'ai fait
Form2.Query1.SQL.Clear;
Form2.Query1.SQL.Add('INSERT INTO Article (Article, Code_article)');
Form2.Query1.SQL.Add('values(select Article, Code_article from Article)');
Form2.Query1.Params[0].AsString :=Edit1.Text;
Form2.Query1.Params[1].AsString :=Edit2.Text;
Form2.Query1.ExecSQL;
Form2.Query1.Filtered:=true;
Form2.Query1.Filter:='Annee='+QuotedStr(Form2.DBText1.Field.Text);
Form2.Query1.close;
Form2.Query1.open;
close;
et me pose le probleme suivant
violation de cle
0
HAFTARIFOUAD
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011

15 mars 2008 à 09:33
HAFTARI Fouad
0