Adoquery [Résolu]

Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
- - Dernière réponse : pierrecoulon
Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
- 23 août 2008 à 13:25
Bonjour,

je recherche le moyen de filtrer une requête adoquery en pernant une variable de mon programme comme paramètre.
j'ai essayer avec l'option filter mais sans succes.
Quelqu'un pourrait-il m'éclairer.
Merci
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
42
Date d'inscription
jeudi 21 février 2008
Dernière intervention
21 octobre 2008
3
Merci
Autre chose quand mème
Pourkoi tu rempli tes EDIT avant que tu filtre ta requête, je pige pas l'intérêt !!
tu devrai placer tes EDIT apres le Open !! normalement.

bref, pour récupérer tes valeur tu peux aussi faire cela
Edit2.text := ADOQuery1.FieldByName('Nom_Societe').AsString;

si tu ne connais pas le numéo de champs.

Autre exemple requete Query valable

refrence := '00034';  // Evidemment c'est un STring

    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM Fournisseur');
    ADOQuery1.SQL.Add('WHERE Code = "' + Reference + '" ');
    ADOQuery1.Open;

    Edit2.text : = ADOQuery1.Fields.Fields[1].AsString;

equivaut à :
    
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM Salarie');
    ADOQuery1.SQL.Add('WHERE Code=:MonFiltre);
    ADOQuery1.Parameters.ParamByName(MinFiltre) := reference;
    ADOQuery1.Open;
    Edit2.text := ADOQuery1.Fields.Fields[1].AsString;  // J'envoi une donné dans EDIT1.text

2 choses
1) apres le Open il est probable qu'il y est plusieur réponse alors il faudra parcourir ta requete genre :
While ADOQuery1.EOF do
Begin
   edit2.text := ADOQuery1.Fields.Fields[1].AsString;  // sa va aller vite lol
ADOQuery1.next
end;

2) Pense à fermer ton Query aussi
ADOQuery1.Close;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de RURUInc
Messages postés
42
Date d'inscription
jeudi 21 février 2008
Dernière intervention
21 octobre 2008
0
Merci
Pour filtrer un, ADOQuery
Evidement, je concidère que la connexion a ton query est valide

ADOQuery1.SQL.clear;  // (au cas ou tu autais quelquechose dedans)
ADOQuery1.SQL.Add('SELECT Code, Nom, Prenom FROM MaTable');
ADOQuery1.SQL.Add('Where Nom=:Marecherche');
ADOQuery1.Parameters.ParamByName(MaRecherche) := Edit1.text;
ADOQuery1.Open;  // <-- Là ta requete est filtrer ta pu qu'a la parcourir

Il y a pas d'autre méthode mais celle-ci est facile a comprendre.

a plus
Commenter la réponse de RURUInc
Messages postés
42
Date d'inscription
jeudi 21 février 2008
Dernière intervention
21 octobre 2008
0
Merci
je voulais dire
IL Y A D'AUTRE METHODE lol
Commenter la réponse de RURUInc
Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
0
Merci
il me met ces deux messages...

[Erreur] Dlg_Fournisseur.pas(146): La partie gauche n'est pas affectable
[Erreur] Dlg_Fournisseur.pas(146): Types incompatibles : 'TParameter' et 'TCaption'
Commenter la réponse de pierrecoulon
Messages postés
42
Date d'inscription
jeudi 21 février 2008
Dernière intervention
21 octobre 2008
0
Merci
Donne ta procédure je pourrais plus t'aider.
Commenter la réponse de RURUInc
Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
0
Merci
il met ces messages par rapport à la ligne : ADOQuery1.Parameters.ParamByName(MaRecherche) := Edit2.text;
Commenter la réponse de pierrecoulon
Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
0
Merci
procedure TFournisseurForm.DlgSetup;
var
  jour, mois, annee : integer;
  MaRecherche : string;
begin
  made := false;




  Edit2.Text := ADOQuery1nom_societe.Value;
  Edit1.Text := ADOQuery1personne_contact.Value;
  Edit3.Text := ADOQuery1rue.Value;
  Edit4.Text := ADOQuery1numero_rue.Value;


  ADOQuery1.SQL.clear;  // (au cas ou tu autais quelquechose dedans)
ADOQuery1.SQL.Add('SELECT * fournisseurs');
ADOQuery1.SQL.Add('Where Nom_societe =:Marecherche');
ADOQuery1.Parameters.ParamByName(MaRecherche) := Edit2.text;
ADOQuery1.Open;  // <-- Là ta requete est filtrer ta pu qu'a la parcourir


 


  DonnerDateActuelle(jour, mois, annee);


  ComboBox1.ItemIndex := jour - 1;
  ComboBox2.ItemIndex := mois - 1;
  ComboBox3.ItemIndex := annee - 2000;


  ComboBox4.ItemIndex := LocFournisseur.Getpays - 1;
  AdapterDebutTVA(LocFournisseur.Getpays);




  made := true;
end;
Commenter la réponse de pierrecoulon
Messages postés
42
Date d'inscription
jeudi 21 février 2008
Dernière intervention
21 octobre 2008
0
Merci
Select * FROM Fournisseurs et pas SELECT * Fournisseurs
Commenter la réponse de RURUInc
Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
0
Merci
toujours les même messages
Commenter la réponse de pierrecoulon
Messages postés
42
Date d'inscription
jeudi 21 février 2008
Dernière intervention
21 octobre 2008
0
Merci
Biensur, j'avais pas fini
tu peux pas faire ça :
  Edit2.Text := ADOQuery1nom_societe.Value;

Pour récupere des données de ta table fournisseur fait comme cela :

Edit2.Text : = ADOQuery1.Fields.Fields[1].AsString;

En imaginant que [1] c'est le 2ème champs de ta table fournisseur
[0]
[1] ca doit etre nom_société je pense
[2]
Commenter la réponse de RURUInc
Messages postés
32
Date d'inscription
jeudi 19 juin 2008
Dernière intervention
11 septembre 2008
0
Merci
merci beaucoup,
ca fonctionne.

désolé pour le retard mais c'est la ducasse de Ath lol
Commenter la réponse de pierrecoulon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.