OVH Cloud OVH Cloud

requête et paramètre "universel"

11 réponses
Avatar
Philo
Bonjour,

est-il possible d'utiliser un paramètre universel dans une requête? Je
m'explique:
actuellement, j'utilise des paramètres du style:
[Formulaires]![frmImpressionLivreCaisse]![DateCaisse]
Seulement, je voudrais que cette requête puisse être appelée d'un autre
formulaire.
Actuellement, je recopie la requête (et je dois alors reconstruire tous les
états qui en découlent)

merci
Philo

10 réponses

1 2
Avatar
Daniel Carollo
Bonjour Philo!

Il est tout a fait possible de creer une fonction, dans un module, qui
calcule le parametre que vous pouvez alors utiliser dans n'importe quelle
requete.

J'espere que ca vous donne des idees...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Philo" wrote in message
news:3fae2002$0$3993$
Bonjour,

est-il possible d'utiliser un paramètre universel dans une requête? Je
m'explique:
actuellement, j'utilise des paramètres du style:
[Formulaires]![frmImpressionLivreCaisse]![DateCaisse]
Seulement, je voudrais que cette requête puisse être appelée d'un autre
formulaire.
Actuellement, je recopie la requête (et je dois alors reconstruire tous
les

états qui en découlent)

merci
Philo




Avatar
J-Pierre
Bonjour Phil,

Je ne crois pas que la solution de Daniel fonctionne. Pour autant que je sache, une requête ne peut pas être paramétrée avec le
résultat d'une fonction, une variable ou d'autres trucs dans le genre.

Certains puristes vont me désapprouver, mais la solution la plus simple est d'ouvrir un formulaire caché (acHidden), souvent à
l'ouverture de ta base, et d'y stocker tous ces trucs et ces machins avant d'exécuter tes requêtes.

Il y a d'autres cas où ce formulaire caché est très utile. Par exemple, tu veux exporter une requête avec paramètres, disons les
ventes du mois, vers une feuille excel:

DoCmd.TransferSpreadsheet acExport, etc........

Les paramètres mois et année sont dans le formulaire caché.

Si quelqu'un a une meilleure solution, je suis PRENEUR

J-Pierre


"Daniel Carollo" a écrit dans le message de
news:eZ%
Bonjour Philo!

Il est tout a fait possible de creer une fonction, dans un module, qui
calcule le parametre que vous pouvez alors utiliser dans n'importe quelle
requete.

J'espere que ca vous donne des idees...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Philo" wrote in message
news:3fae2002$0$3993$
Bonjour,

est-il possible d'utiliser un paramètre universel dans une requête? Je
m'explique:
actuellement, j'utilise des paramètres du style:
[Formulaires]![frmImpressionLivreCaisse]![DateCaisse]
Seulement, je voudrais que cette requête puisse être appelée d'un autre
formulaire.
Actuellement, je recopie la requête (et je dois alors reconstruire tous
les

états qui en découlent)

merci
Philo








Avatar
Anor
Bonjour J-Pierre

J-Pierre :
| Bonjour Phil,
|
| Je ne crois pas que la solution de Daniel fonctionne. Pour autant que
| je sache, une requête ne peut pas être paramétrée avec le résultat
| d'une fonction, une variable ou d'autres trucs dans le genre.

un simple test :

une Table TblUsers avec un champ string nommé User et quelques valeurs dont la valeur "Test"

Une fonction :
Function fCurrentUser() As String
fCurrentUser = "Test"
End Function

une requête :

SELECT User
FROM tblUsers
WHERE tblUsers.UserüurrentUser();

Le résultat de ma requête renvoie l'enregistrement dont la valeur de User est "Test".

Donc, quoi qu'on fasse passer à la fonction comme valeur, sera bien pris en compte dans la
requête.

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------
Avatar
Philo
Merci pour les pistes.
Dès que je peux, je les explore, mais je ne suis pas un pro du SQL!

N'existe-il pas un paramètre du style
[Formulaires]![formulaireouvert]!DateCaisse] ?


Philo
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:OT$
Bonjour J-Pierre

J-Pierre :
| Bonjour Phil,
|
| Je ne crois pas que la solution de Daniel fonctionne. Pour autant que
| je sache, une requête ne peut pas être paramétrée avec le résultat
| d'une fonction, une variable ou d'autres trucs dans le genre.

un simple test :

une Table TblUsers avec un champ string nommé User et quelques valeurs
dont la valeur "Test"


Une fonction :
Function fCurrentUser() As String
fCurrentUser = "Test"
End Function

une requête :

SELECT User
FROM tblUsers
WHERE tblUsers.UserüurrentUser();

Le résultat de ma requête renvoie l'enregistrement dont la valeur de User
est "Test".


Donc, quoi qu'on fasse passer à la fonction comme valeur, sera bien pris
en compte dans la

requête.

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------




Avatar
Anor
Bonjour,

Dans ce cas tu peux te créer une fonction personnalisée (dans un nouveau module)
qui sera alimentée lors de l'ouverture de tes formulaires.

Public Function fDateCaisse(Optional DateForm) As Date
Static DateStored As Date
If IsMissing(DateForm) Then
fDateCaisse = DateStored
Else
DateStored = DateForm
fDateCaisse = DateForm
End If
End Function

Ensuite, dans ta requête, tu mets simplement le critère fDateCaisse()
à la place de [Formulaires]![formulaireouvert]!DateCaisse]

Et enfin, sur ouverture du form :
Private Sub Form_Open(Cancel As Integer)
Call fDateCaisse(#12/21/2003#)
End Sub

tu remplaces la date par ce que tu veux !!

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------


Philo :
| Merci pour les pistes.
| Dès que je peux, je les explore, mais je ne suis pas un pro du SQL!
|
| N'existe-il pas un paramètre du style
| [Formulaires]![formulaireouvert]!DateCaisse] ?
|
|
| Philo
Avatar
Daniel Carollo
Bonjour J-Pierre!

Je ne crois pas que la solution de Daniel fonctionne. Pour autant que je
sache, une requête ne peut pas être paramétrée

avec le résultat d'une fonction, une variable ou d'autres trucs dans le
genre.


Que nenni!
Que faites vous d'une requete du genre:
SELECT M.id
FROM M
WHERE M.id < Turlututu();
la fonction Turlututu etant definie (par mes soins) dans un module, du
genre:
Public Function Turlututu() As Integer
Turlututu = 14
End Function
?

Certains puristes vont me désapprouver, mais la solution la plus simple
est d'ouvrir un formulaire caché (acHidden),

souvent à l'ouverture de ta base, et d'y stocker tous ces trucs et ces
machins avant d'exécuter tes requêtes.


Au risque d'etre traite de puriste impur, je dirais que cette solution est a
retenir dans certains cas, mais qu'elle n'est pas necessairement la
meilleure... Comme toute solution programmatique a un probleme informatique,
ca depend des circonstances...

Si quelqu'un a une meilleure solution, je suis PRENEUR


Meilleure... tout depend des circonstances. Des solutions, on peut en
imaginer des tas, autant que de problemes en fait. Il faut trouver le juste
milieu entre utiliser toujours les memes solutions (au rique de passer a
cote de quelque chose de plus simple et plus adapte, mais ayant l'avantage
de la familiarite et de la maitrise du processus), et re-inventer la roue a
chaque probleme...

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

Avatar
Philo
Si j'ai bien tout compris :
Dans mon formulaire de saisie de date, sur le bouton valider, j'écris le
code
Call fDateCaisse(Me.DateSaisie)
Puis j'ouvre mon état basé sur la requête dans laquelle j'ai placé le
critère fDateCaisse()

Philo


"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:
Bonjour,

Dans ce cas tu peux te créer une fonction personnalisée (dans un nouveau
module)

qui sera alimentée lors de l'ouverture de tes formulaires.

Public Function fDateCaisse(Optional DateForm) As Date
Static DateStored As Date
If IsMissing(DateForm) Then
fDateCaisse = DateStored
Else
DateStored = DateForm
fDateCaisse = DateForm
End If
End Function

Ensuite, dans ta requête, tu mets simplement le critère fDateCaisse()
à la place de [Formulaires]![formulaireouvert]!DateCaisse]

Et enfin, sur ouverture du form :
Private Sub Form_Open(Cancel As Integer)
Call fDateCaisse(#12/21/2003#)
End Sub

tu remplaces la date par ce que tu veux !!

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------


Philo :
| Merci pour les pistes.
| Dès que je peux, je les explore, mais je ne suis pas un pro du SQL!
|
| N'existe-il pas un paramètre du style
| [Formulaires]![formulaireouvert]!DateCaisse] ?
|
|
| Philo




Avatar
Anor
Bonjour,

Tu as tout compris !!
Un bouton valider ou un événement adapté....

Attention toutefois : je n'ai pas prévu un cas particulier.
En cas de fermeture du formulaire, l'état sera ouvert
avec la dernière valeur de datesaisie validée par ton bouton.

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------


Philo :
| Si j'ai bien tout compris :
| Dans mon formulaire de saisie de date, sur le bouton valider, j'écris
| le code
| Call fDateCaisse(Me.DateSaisie)
| Puis j'ouvre mon état basé sur la requête dans laquelle j'ai placé le
| critère fDateCaisse()
|
| Philo
|
|
| "Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le
| message de news:
|| Bonjour,
||
|| Dans ce cas tu peux te créer une fonction personnalisée (dans un
|| nouveau module) qui sera alimentée lors de l'ouverture de tes
|| formulaires.
||
|| Public Function fDateCaisse(Optional DateForm) As Date
|| Static DateStored As Date
|| If IsMissing(DateForm) Then
|| fDateCaisse = DateStored
|| Else
|| DateStored = DateForm
|| fDateCaisse = DateForm
|| End If
|| End Function
||
|| Ensuite, dans ta requête, tu mets simplement le critère fDateCaisse()
|| à la place de [Formulaires]![formulaireouvert]!DateCaisse]
||
|| Et enfin, sur ouverture du form :
|| Private Sub Form_Open(Cancel As Integer)
|| Call fDateCaisse(#12/21/2003#)
|| End Sub
||
|| tu remplaces la date par ce que tu veux !!
||
|| --
|| à+
|| Arnaud
|| --------------------------------------------------
|| Avant toute chose : http://users.skynet.be/mpfa/
|| Access Memorandum - http://memoaccess.free.fr
|| ## Réponses souhaitées sur ce forum, merci. ##
|| --------------------------------------------------
||
||
|| Philo :
||| Merci pour les pistes.
||| Dès que je peux, je les explore, mais je ne suis pas un pro du SQL!
|||
||| N'existe-il pas un paramètre du style
||| [Formulaires]![formulaireouvert]!DateCaisse] ?
|||
|||
||| Philo
Avatar
Philo
Je commence à devenir bon (Enfin, un peu moins mauvais) à votre contact
;-))))


--

Philippe Hennebert
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:
Bonjour,

Tu as tout compris !!
Un bouton valider ou un événement adapté....

Attention toutefois : je n'ai pas prévu un cas particulier.
En cas de fermeture du formulaire, l'état sera ouvert
avec la dernière valeur de datesaisie validée par ton bouton.

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------


Philo :
| Si j'ai bien tout compris :
| Dans mon formulaire de saisie de date, sur le bouton valider, j'écris
| le code
| Call fDateCaisse(Me.DateSaisie)
| Puis j'ouvre mon état basé sur la requête dans laquelle j'ai placé le
| critère fDateCaisse()
|
| Philo
|
|
| "Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le
| message de news:
|| Bonjour,
||
|| Dans ce cas tu peux te créer une fonction personnalisée (dans un
|| nouveau module) qui sera alimentée lors de l'ouverture de tes
|| formulaires.
||
|| Public Function fDateCaisse(Optional DateForm) As Date
|| Static DateStored As Date
|| If IsMissing(DateForm) Then
|| fDateCaisse = DateStored
|| Else
|| DateStored = DateForm
|| fDateCaisse = DateForm
|| End If
|| End Function
||
|| Ensuite, dans ta requête, tu mets simplement le critère fDateCaisse()
|| à la place de [Formulaires]![formulaireouvert]!DateCaisse]
||
|| Et enfin, sur ouverture du form :
|| Private Sub Form_Open(Cancel As Integer)
|| Call fDateCaisse(#12/21/2003#)
|| End Sub
||
|| tu remplaces la date par ce que tu veux !!
||
|| --
|| à+
|| Arnaud
|| --------------------------------------------------
|| Avant toute chose : http://users.skynet.be/mpfa/
|| Access Memorandum - http://memoaccess.free.fr
|| ## Réponses souhaitées sur ce forum, merci. ##
|| --------------------------------------------------
||
||
|| Philo :
||| Merci pour les pistes.
||| Dès que je peux, je les explore, mais je ne suis pas un pro du SQL!
|||
||| N'existe-il pas un paramètre du style
||| [Formulaires]![formulaireouvert]!DateCaisse] ?
|||
|||
||| Philo




Avatar
J-Pierre
Surtout au mien :-)

"Philo" a écrit dans le message de news:3fae816a$0$2037$
Je commence à devenir bon (Enfin, un peu moins mauvais) à votre contact
;-))))


1 2