Adoquery [Résolu]

pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 21 août 2008 à 18:39 - Dernière réponse : pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention
- 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

RURUInc 42 Messages postés jeudi 21 février 2008Date d'inscription 21 octobre 2008 Dernière intervention - 21 août 2008 à 22:31
+3
Utile
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;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de RURUInc
RURUInc 42 Messages postés jeudi 21 février 2008Date d'inscription 21 octobre 2008 Dernière intervention - 21 août 2008 à 20:49
0
Utile
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
RURUInc 42 Messages postés jeudi 21 février 2008Date d'inscription 21 octobre 2008 Dernière intervention - 21 août 2008 à 20:51
0
Utile
je voulais dire
IL Y A D'AUTRE METHODE lol
Commenter la réponse de RURUInc
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 21 août 2008 à 21:58
0
Utile
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
RURUInc 42 Messages postés jeudi 21 février 2008Date d'inscription 21 octobre 2008 Dernière intervention - 21 août 2008 à 22:03
0
Utile
Donne ta procédure je pourrais plus t'aider.
Commenter la réponse de RURUInc
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 21 août 2008 à 22:03
0
Utile
il met ces messages par rapport à la ligne : ADOQuery1.Parameters.ParamByName(MaRecherche) := Edit2.text;
Commenter la réponse de pierrecoulon
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 21 août 2008 à 22:05
0
Utile
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
RURUInc 42 Messages postés jeudi 21 février 2008Date d'inscription 21 octobre 2008 Dernière intervention - 21 août 2008 à 22:08
0
Utile
Select * FROM Fournisseurs et pas SELECT * Fournisseurs
Commenter la réponse de RURUInc
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 21 août 2008 à 22:09
0
Utile
toujours les même messages
Commenter la réponse de pierrecoulon
RURUInc 42 Messages postés jeudi 21 février 2008Date d'inscription 21 octobre 2008 Dernière intervention - 21 août 2008 à 22:15
0
Utile
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
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 23 août 2008 à 13:25
0
Utile
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.