OVH Cloud OVH Cloud

variable dans un requête

7 réponses
Avatar
Utilisateur 1
Est'il possible de mettre comme condition d'une requête , une variable
globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un formulaire une zone de
liste dont un des critères est une variable globale comme par exemple dans
la fenêtre graphique de la requête ligne Critères : comme "mavariable"
merci

7 réponses

Avatar
Damien Mermoz
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans le message de
news:en%
Est'il possible de mettre comme condition d'une requête , une variable
globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un formulaire une zone
de

liste dont un des critères est une variable globale comme par exemple dans
la fenêtre graphique de la requête ligne Critères : comme "mavariable"
merci




Avatar
Utilisateur 1
Super cela marche à merveille
et m'ouvre beaucoup de perspective
Merci à toi

"Damien Mermoz" a écrit dans le message de
news:%23t%
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans le message de
news:en%
Est'il possible de mettre comme condition d'une requête , une variable
globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un formulaire une
zone


de
liste dont un des critères est une variable globale comme par exemple
dans


la fenêtre graphique de la requête ligne Critères : comme "mavariable"
merci








Avatar
Arf j'ai voulu essayé pour voir ce que ça donné ben pour
moi ca marche pas...

La requête:
SELECT Prospect.[Prs CP], Prospect.[Prs Num]
FROM Prospect
WHERE (((Prospect.[Prs CP]) Like Tri_CP()))
ORDER BY Prospect.[Prs CP];

Le code:
Option Compare Database
Dim CP As Variant
CP = 30000

Public Function Tri_CP() As Variant
Tri_CP = CP
End Function

Je peux même pas éxecuter la requête depuis acces
(Fonction 'Tri_CP()' non définit dans l'expression) et
encore moins créer un combobox s'alimentant de cette
requête dans un formulaire (Il n'y a aucun champ valide
dans "Test Tri". Veuillez sélectionner une nouvelle source)
J'ai fait une gaffe quelque part ?
-----Message d'origine-----
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans
le message de

news:en%
Est'il possible de mettre comme condition d'une
requête , une variable


globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un
formulaire une zone


de
liste dont un des critères est une variable globale
comme par exemple dans


la fenêtre graphique de la requête ligne Critères :
comme "mavariable"


merci





.




Avatar
Utilisateur 1
Je t assure que cela marche très bien de mon côté, en regardant ton morceau
de code, la requête et la fonction semble correct, le problème semble venir
à mon avis, de la déclaration de la variable, il faut qu elle soit publique
aussi, donc accessible de n importe quel endroit du code
pour ma part j ai pratiqué de la sorte :
j 'ai créé un module dans lequel l on trouve ne entête :
la déclaration de ma variable :
Public mavariable as variant
puis la fonction :
Public function enregistrementvaribale() as variant
enregsitrementvariable = mavariable

Voilà
bonne chance à toi


a écrit dans le message de
news:94fd01c3ea33$9e27b560$
Arf j'ai voulu essayé pour voir ce que ça donné ben pour
moi ca marche pas...

La requête:
SELECT Prospect.[Prs CP], Prospect.[Prs Num]
FROM Prospect
WHERE (((Prospect.[Prs CP]) Like Tri_CP()))
ORDER BY Prospect.[Prs CP];

Le code:
Option Compare Database
Dim CP As Variant
CP = 30000

Public Function Tri_CP() As Variant
Tri_CP = CP
End Function

Je peux même pas éxecuter la requête depuis acces
(Fonction 'Tri_CP()' non définit dans l'expression) et
encore moins créer un combobox s'alimentant de cette
requête dans un formulaire (Il n'y a aucun champ valide
dans "Test Tri". Veuillez sélectionner une nouvelle source)
J'ai fait une gaffe quelque part ?
-----Message d'origine-----
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans
le message de

news:en%
Est'il possible de mettre comme condition d'une
requête , une variable


globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un
formulaire une zone


de
liste dont un des critères est une variable globale
comme par exemple dans


la fenêtre graphique de la requête ligne Critères :
comme "mavariable"


merci





.




Avatar
Ryo
Effectivement ça marche !
Mon erreur c'était d'avoir donné le même nom à mon module
et la fonction dans le module...

-----Message d'origine-----
Je t assure que cela marche très bien de mon côté, en
regardant ton morceau

de code, la requête et la fonction semble correct, le
problème semble venir

à mon avis, de la déclaration de la variable, il faut qu
elle soit publique

aussi, donc accessible de n importe quel endroit du code
pour ma part j ai pratiqué de la sorte :
j 'ai créé un module dans lequel l on trouve ne entête :
la déclaration de ma variable :
Public mavariable as variant
puis la fonction :
Public function enregistrementvaribale() as variant
enregsitrementvariable = mavariable

Voilà
bonne chance à toi


a écrit dans le
message de

news:94fd01c3ea33$9e27b560$
Arf j'ai voulu essayé pour voir ce que ça donné ben pour
moi ca marche pas...

La requête:
SELECT Prospect.[Prs CP], Prospect.[Prs Num]
FROM Prospect
WHERE (((Prospect.[Prs CP]) Like Tri_CP()))
ORDER BY Prospect.[Prs CP];

Le code:
Option Compare Database
Dim CP As Variant
CP = 30000

Public Function Tri_CP() As Variant
Tri_CP = CP
End Function

Je peux même pas éxecuter la requête depuis acces
(Fonction 'Tri_CP()' non définit dans l'expression) et
encore moins créer un combobox s'alimentant de cette
requête dans un formulaire (Il n'y a aucun champ valide
dans "Test Tri". Veuillez sélectionner une nouvelle
source)

J'ai fait une gaffe quelque part ?
-----Message d'origine-----
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans
le message de

news:en%
Est'il possible de mettre comme condition d'une
requête , une variable


globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un
formulaire une zone


de
liste dont un des critères est une variable globale
comme par exemple dans


la fenêtre graphique de la requête ligne Critères :
comme "mavariable"


merci





.




.





Avatar
Ryo
Bon c'est vrai que quand on fait pas gaffe ca marche
nickel !
Mais je me pose quand même une question, j'ai fait le
module VBA, je change la valeur de la variable a partir
d'un formulaire et ça permet donc de faire une sorte de
filtre dynamique.
Mais question, comment faire pour que ca ne filtre pas ?
Je pensait qu'en initialisant ma variable avec """*""" ca
marcherai (en faisant ainsi le module retourne "*" à la
requête). Mais c'est pas le cas. Une idée pour que ca
marche ?

-----Message d'origine-----
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans
le message de

news:en%
Est'il possible de mettre comme condition d'une
requête , une variable


globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un
formulaire une zone


de
liste dont un des critères est une variable globale
comme par exemple dans


la fenêtre graphique de la requête ligne Critères :
comme "mavariable"


merci





.




Avatar
Dan
Déclarer des bornes au lieu d'une valeur simple ?

A+ DAN

Mais je me pose quand même une question, j'ai fait le
module VBA, je change la valeur de la variable a partir
d'un formulaire et ça permet donc de faire une sorte de
filtre dynamique.
Mais question, comment faire pour que ca ne filtre pas ?
Je pensait qu'en initialisant ma variable avec """*""" ca
marcherai (en faisant ainsi le module retourne "*" à la
requête). Mais c'est pas le cas. Une idée pour que ca
marche ?

-----Message d'origine-----
Bonsoir,
Une fonction devrait faire l'affaire.
Dans un module VBA :
Public Function fcMaVariable() as Variant
fcMaVariable = lenomdetavariablepublique
end function

Et tu utilises cette fonction dans ta requête.
donc en critère
comme fcMaVariable()



A +
Damien.

"Utilisateur 1" a écrit dans
le message de

news:en%
Est'il possible de mettre comme condition d'une
requête , une variable


globale initialisée en VBA
si oui comment, mon but final étant d 'ouvrir dans un
formulaire une zone


de
liste dont un des critères est une variable globale
comme par exemple dans


la fenêtre graphique de la requête ligne Critères :
comme "mavariable"


merci





.