OVH Cloud OVH Cloud

Opérateur dans requête

2 réponses
Avatar
Doudou
Bonjour,

Voilà je fais une requête avec des critères :

Première zones donne l'opérateur soir "=";"<";">";...
Deuxième zones donne la valeur (ex : 8)

Je désire faire une requête sans qui à comme critère l'opérateur " " la valeur

Mais voila quand je met ma formule il ne recherche pas tous les valeur
inférieur à 8 mais il recherche <8 dans le champ...

Quelle syntaxe prendre pour qu'il comprenne que
forms![frm_recherche]![opérateur] n'est pas une valeur mais un opérateur ....

Merci d'vance

2 réponses

Avatar
Eric
Bonjour,

Non testé
mais peut-être avec :
Eval("Formulaires![frm_recherche]![opérateur]" & " " &
"Formulaires![frm_recherche]![valeur]") en critère ?

Si c'est en SQL remplacer Formulaires par Forms

Bonjour,

Voilà je fais une requête avec des critères :

Première zones donne l'opérateur soir "=";"<";">";...
Deuxième zones donne la valeur (ex : 8)

Je désire faire une requête sans qui à comme critère l'opérateur " " la valeur

Mais voila quand je met ma formule il ne recherche pas tous les valeur
inférieur à 8 mais il recherche <8 dans le champ...

Quelle syntaxe prendre pour qu'il comprenne que
forms![frm_recherche]![opérateur] n'est pas une valeur mais un opérateur ....

Merci d'vance


--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

Ne tiens pas compte de ma réponse précédente, ca ne doit pas marcher.
Par contre la procédure suivante OUI.

Un formulaire nommé Formulaire1 avec 2 zones de textes (txtOperateur et
txtValeur) et un bouton de commande Commande4.
Il faut créer la chaine SQL avec la fonction Eval() pour récupérer les
éléments saisis dans les zones de texte. Puis, on crée la requête, on
l'ouvre et enfin, on la supprime de la collection des requêtes pour une
utilisation ultérieure de la procédure.
Cet exemple permet de ne voir que les factures dont le n° est =, <, <=,
, >= ou encore <> d'une valeur


Ce qui donne:
Private Sub Commande4_Click()
Dim ret As String, qry As DAO.QueryDef, strSQL As String
'Récupération des éléments saisis dans les zones de texte
ret = Eval("Forms!formulaire1![txtOperateur] &
Forms!formulaire1![txtvaleur]")
' Construction du SQL
strSQL = "Select * from tfacture where NumFacture " & ret & ";"
' Création de la requête temporaire
Set qry = CurrentDb.CreateQueryDef("tmpQRY", strSQL)
' Ouverture de la requête
DoCmd.OpenQuery "tmpQRY"
'Suppression de la requête
CurrentDb.QueryDefs.Delete "tmpQRY"
'Libération des variables-objet
Set qry = Nothing
End Sub

Attention à la ligne ret=..., tout est sur la même ligne, pas de retour
à la ligne pour Forms!formulaire1![txtvaleur]")

PS : Charger la Référence Microsoft DAO 3.x

Bonjour,

Non testé
mais peut-être avec :
Eval("Formulaires![frm_recherche]![opérateur]" & " " &
"Formulaires![frm_recherche]![valeur]") en critère ?

Si c'est en SQL remplacer Formulaires par Forms


Bonjour,

Voilà je fais une requête avec des critères :

Première zones donne l'opérateur soir "=";"<";">";...
Deuxième zones donne la valeur (ex : 8)

Je désire faire une requête sans qui à comme critère l'opérateur " "
la valeur

Mais voila quand je met ma formule il ne recherche pas tous les valeur
inférieur à 8 mais il recherche <8 dans le champ...

Quelle syntaxe prendre pour qu'il comprenne que
forms![frm_recherche]![opérateur] n'est pas une valeur mais un
opérateur ....

Merci d'vance





--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr