requete avec paramètre de date

3 réponses
Avatar
Txl
Bonjour =E0 tous,

J'ai un form qui me permet d'entr=E9e une date de d=E9but et une date de
fin
Ensuite je veux faire un graphique en ne prenant que les valeurs dont
la date est comprise entre celles d=E9finies dans le form
Tout marche bien, le form stocke bien les dates mais =E0 chaque fois le
form graphique me balance 2 boites de dialogues qui me demandent la
date de d=E9but et de fin alors que je les ai d=E9ja indiqu=E9es...

Voila le bout de code qui me stocke les valeurs de dates dans le form
sur le bouton "complet" du form qui affiche toutes les dates, j'ai
fait des boutons pr=E9d=E9finis genre "ann=E9e en cours" et 2 contr=F4les
ind=E9pendants que je peux remplir =E0 la main

Private Sub Complet_Click()
Dim debut As Date
Dim fin As Date
debut =3D #1/1/2001#
fin =3D #1/1/2099#
Me!debut =3D debut
Me!fin =3D fin
DoCmd.SetWarnings False
DoCmd.RunMacro "macfrmgraph"
End Sub

Voila le texte de la requ=EAte

SELECT tblgraph.Montant, DSum("Montant","tblgraph","[refinsert] < " &
[refinsert]) AS Solde, tblgraph.ref, tblgraph.Echeance
FROM tblgraph
WHERE (((tblgraph.Echeance)>DateValue([frmgraphselect].[debut]) And
(tblgraph.Echeance)<DateValue([frmgraphselect].[fin])))
ORDER BY tblgraph.Echeance;

Je bute la dessus depuis ce matin, j'ai tent=E9 avec des #, des (, des
"&, enfin bon bref....

Merci de votre aide

3 réponses

Avatar
Gloops
Txl a écrit, le 18/10/2011 13:17 :
Bonjour à tous,

J'ai un form qui me permet d'entrée une date de début et une date d e
fin
Ensuite je veux faire un graphique en ne prenant que les valeurs dont
la date est comprise entre celles définies dans le form
Tout marche bien, le form stocke bien les dates mais à chaque fois le
form graphique me balance 2 boites de dialogues qui me demandent la
date de début et de fin alors que je les ai déja indiquées...

Voila le bout de code qui me stocke les valeurs de dates dans le form
sur le bouton "complet" du form qui affiche toutes les dates, j'ai
fait des boutons prédéfinis genre "année en cours" et 2 contrôl es
indépendants que je peux remplir à la main

Private Sub Complet_Click()
Dim debut As Date
Dim fin As Date
debut = #1/1/2001#
fin = #1/1/2099#
Me!debut = debut
Me!fin = fin
DoCmd.SetWarnings False
DoCmd.RunMacro "macfrmgraph"
End Sub

Voila le texte de la requête

SELECT tblgraph.Montant, DSum("Montant","tblgraph","[refinsert]< "&
[refinsert]) AS Solde, tblgraph.ref, tblgraph.Echeance
FROM tblgraph
WHERE (((tblgraph.Echeance)>DateValue([frmgraphselect].[debut]) And
(tblgraph.Echeance)<DateValue([frmgraphselect].[fin])))
ORDER BY tblgraph.Echeance;

Je bute la dessus depuis ce matin, j'ai tenté avec des #, des (, des
"&, enfin bon bref....

Merci de votre aide




Bonjour,

Avec une condition de ce type ça devrait fonctionner (du moment que le
formulaire est ouvert et une date sélectionnée dans chaque contrôle
calendrier) :
WHERE
(((DateValue([DateEmission]))>ÚteValue([Forms].[frmSelDates].[Calenda r0]))
AND
((DateValue([DateEmission]))<ÚteValue([Forms].[frmSelDates].[Calendar 1])));

Il est arrivé qu'on ait des soucis avec une version francophone qui a
tendance à traduire un peu trop vite Forms par Formulaires, mais en
insistant avec le terme en Anglais on finit par y arriver.
Avatar
Txl
On Oct 19, 8:22 pm, Gloops wrote:
Txl a écrit, le 18/10/2011 13:17 :









> Bonjour à tous,

> J'ai un form qui me permet d'entrée une date de début et une date d e
> fin
> Ensuite je veux faire un graphique en ne prenant que les valeurs dont
> la date est comprise entre celles définies dans le form
> Tout marche bien, le form stocke bien les dates mais à chaque fois le
> form graphique me balance 2 boites de dialogues qui me demandent la
> date de début et de fin alors que je les ai déja indiquées...

> Voila le bout de code qui me stocke les valeurs de dates dans le form
> sur le bouton "complet" du form qui affiche toutes les dates, j'ai
> fait des boutons prédéfinis genre "année en cours" et 2 contrôl es
> indépendants que je peux remplir à la main

> Private Sub Complet_Click()
> Dim debut As Date
> Dim fin As Date
> debut = #1/1/2001#
> fin = #1/1/2099#
> Me!debut = debut
> Me!fin = fin
> DoCmd.SetWarnings False
> DoCmd.RunMacro "macfrmgraph"
> End Sub

> Voila le texte de la requête

> SELECT tblgraph.Montant, DSum("Montant","tblgraph","[refinsert]<  "&
> [refinsert]) AS Solde, tblgraph.ref, tblgraph.Echeance
> FROM tblgraph
> WHERE (((tblgraph.Echeance)>DateValue([frmgraphselect].[debut]) And
> (tblgraph.Echeance)<DateValue([frmgraphselect].[fin])))
> ORDER BY tblgraph.Echeance;

> Je bute la dessus depuis ce matin, j'ai tenté avec des #, des (, des
> "&, enfin bon bref....

> Merci de votre aide



Bonjour,

EN fait, pour que ca marche, sous access 2007 avec unb format 2003 il
FAUT mettre des ! dans les formules de champs au lieu de .

Donc

[frmgraphselect].[debut]

Marche pas

[frmgraphselect]![debut]

Marche

Je sais que c'est un vieux rève mais si je tenais le génie qui a
défini la syntaxe il passerait un sale moment :)

En tout cas merci


Bonjour,

Avec une condition de ce type ça devrait fonctionner (du moment que le
formulaire est ouvert et une date sélectionnée dans chaque contrôle
calendrier) :
WHERE
(((DateValue([DateEmission]))>ÚteValue([Forms].[frmSelDates].[Calenda r0])­)
AND
((DateValue([DateEmission]))<ÚteValue([Forms].[frmSelDates].[Calendar 1]))­);

Il est arrivé qu'on ait des soucis avec une version francophone qui a
tendance à traduire un peu trop vite Forms par Formulaires, mais en
insistant avec le terme en Anglais on finit par y arriver.
Avatar
Thierry
Bonjour,
C'est vrai que les . et les ! m'ont toujours posé des problèmes ( s'il n'y
avait que ça...).
Un article pour approfondir ( en anglais ) écrit par une pointure en
développement Access

http://rogersaccessblog.blogspot.com/2011/10/bang-vs-dot-in-forms.html

Bon courage.
TG

"Txl" a écrit dans le message de groupe de discussion :


On Oct 19, 8:22 pm, Gloops wrote:
Txl a écrit, le 18/10/2011 13:17 :









> Bonjour à tous,

> J'ai un form qui me permet d'entrée une date de début et une date de
> fin
> Ensuite je veux faire un graphique en ne prenant que les valeurs dont
> la date est comprise entre celles définies dans le form
> Tout marche bien, le form stocke bien les dates mais à chaque fois le
> form graphique me balance 2 boites de dialogues qui me demandent la
> date de début et de fin alors que je les ai déja indiquées...

> Voila le bout de code qui me stocke les valeurs de dates dans le form
> sur le bouton "complet" du form qui affiche toutes les dates, j'ai
> fait des boutons prédéfinis genre "année en cours" et 2 contrôles
> indépendants que je peux remplir à la main

> Private Sub Complet_Click()
> Dim debut As Date
> Dim fin As Date
> debut = #1/1/2001#
> fin = #1/1/2099#
> Me!debut = debut
> Me!fin = fin
> DoCmd.SetWarnings False
> DoCmd.RunMacro "macfrmgraph"
> End Sub

> Voila le texte de la requête

> SELECT tblgraph.Montant, DSum("Montant","tblgraph","[refinsert]< "&
> [refinsert]) AS Solde, tblgraph.ref, tblgraph.Echeance
> FROM tblgraph
> WHERE (((tblgraph.Echeance)>DateValue([frmgraphselect].[debut]) And
> (tblgraph.Echeance)<DateValue([frmgraphselect].[fin])))
> ORDER BY tblgraph.Echeance;

> Je bute la dessus depuis ce matin, j'ai tenté avec des #, des (, des
> "&, enfin bon bref....

> Merci de votre aide



Bonjour,

EN fait, pour que ca marche, sous access 2007 avec unb format 2003 il
FAUT mettre des ! dans les formules de champs au lieu de .

Donc

[frmgraphselect].[debut]

Marche pas

[frmgraphselect]![debut]

Marche

Je sais que c'est un vieux rève mais si je tenais le génie qui a
défini la syntaxe il passerait un sale moment :)

En tout cas merci


Bonjour,

Avec une condition de ce type ça devrait fonctionner (du moment que le
formulaire est ouvert et une date sélectionnée dans chaque contrôle
calendrier) :
WHERE
(((DateValue([DateEmission]))>ÚteValue([Forms].[frmSelDates].[Calendar0])­)
AND
((DateValue([DateEmission]))<ÚteValue([Forms].[frmSelDates].[Calendar1]))­);

Il est arrivé qu'on ait des soucis avec une version francophone qui a
tendance à traduire un peu trop vite Forms par Formulaires, mais en
insistant avec le terme en Anglais on finit par y arriver.