Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modifier des critères de requête identiques en une fois

16 réponses
Avatar
lograd
Bonjour.

Voila mon soucis, j'ai des requ=EAtes dans lesquelles j'ai ce crit=E8re :
entre 01/01/2008 et 31/01/2008
avec un autre : vrai.
Ce qui me permet d'avoir pour le mois de janvier 2008 toutes les cases
coch=E9es.
Mais pour le mois de f=E9vrier puis mars et ainsi de suite je suis
oblig=E9 de cr=E9er une requ=EAte identique mais en tapant =E0 chaque fois
ceci : entre xx/xx/xxxx et xx/xx/xxxx.
Et ceci autant de fois que j'ai de mois.

Auriez vous une id=E9es pour simplifier le probl=E8me, de plus je voudrais
que ces requ=EAtes me servent pour l'ann=E9e d'apr=E8s, donc le crit=E8res :=

entre xx/xx/2008 et xx/xx/2008 de pouvoir le changer =E0 ma guise en
fonction des ann=E9e sans devoirs me retaper une =E0 une les requ=EAtes.

Ais-je =E9t=E9 bien claire ?

Par avance merci.

6 réponses

1 2
Avatar
lograd
On 25 mar, 09:03, Fabien wrote:

On 24 mar, 18:46, lograd wrote:
On 24 mar, 15:50, "Richard_35" wrote:

Bonjour Lograd,
Il suffit donc d'ajouter, à ce formulaire (celui qui contient le s 12
zones de texte), un champ supplémentaire dans lequel tu saisiras une année
(Annee_saisie).
La valeur de tes zones de texte sera, pour janvier :
SELECT Count(*)
FROM Ta_Table
WHERE Year(Ta_Table.Date )=Annee_saisie
AND Month(Ta_Table.Date )=1
AND Ta_Table.ChampVF=True ;
Pour février :
SELECT Count(*)
FROM Ta_Table
WHERE Year(Ta_Table.Date )=Annee_saisie
AND Month(Ta_Table.Date )=2
AND Ta_Table.ChampVF=True ;
Etc...
Dis-nous et bon courage,
Richard.
"lograd" a écrit dans le message de news:

Encore bien compris, avec dans chaque zone de texte l'utilisation de
ma requête comme indiqué plus haut.
Merci pour la réponse, je vais essayer dès que possible.

Je reviendrais pour vous faire part de mes essais.

@+


Bonjour Richard.

J'ai essayé, pour janvier j'ai donc écrit ceci dans ma requête :
SELECT Count([Tab Courrier Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
WHERE (((Year([Tab Modif]=[Année]))<>False) AND ((Month([Tab
Modif]=1))<>False) AND (([Tab Courrier Arrivé].marine)=True));

Malheureusement le résultat est faux, le chiffre trouvé est éronn ée.
De plus dans mon code j'ai " <>False qui apparait deux fois, et lors
du lancement de ma requête celle-ci me demande :
1) Entrée une valeur paramètre, Table modif
2) Entrée une valeur de paramètre, Année.

Pour l'année OK, mais pour la première valeur je ne comprend pas.
Dans ma Table courrier arrivée je veux compter toutes les cases
cochées Marine du mois de janvier, puis fevrier, puis mars etc... Mais
cela tu avais compris.

ALors ou ais-je fait une erreur.

Dans mon Formulaire j'ai déjà le fameux champs ' Année ', il est i ssu
de ma table ' Tab Modif '.

Suis-je claire ?

Je n'ai peut-être pas tout compris, détail un peu plus s'il te plait .

@+


Bonjour,
Une autre solution :
Une requete de type
SELECT Format([Tab Modif],"yyyymm") AS AnnéeMois, Count([Tab Courrier
Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
Having [Tab Courrier Arrivé].marine=True and Year(Tab Modif]=Year(no w())
GROUP BY Format([Tab Modif],"yyyymm")
ORDER BY Format([Tab Modif],"yyyymm");

Te donnes le comptage de tes
[Tab Courrier Arrivé].marine qui sont à vrai pour l'année en cours e n
les regroupants par Année Mois
Ensuite tu ajoute a ton formulaire principal un sous-formulaire mode
continu basé sur cette requete qui filtre sur l'année en cours.
@+


Merci pour vos réponses à Richard et Fabien, je continue sur l'idée de
Richard, mais je mets de côté celle de Fabien ;)

Je vous tiens au courant.

Mais j'ai l'impression que plus j'avance et plus je m'embrouille,
enfin à bientôt.

@+




Avatar
Richard_35
Re,

L'idée de Fabien est bonne et tu peux t'affranchir de la création
"manuelle" de ton formulaire et abandonner ton formulaire avec tes 12 zones
de texte.
Donc, tu peux créer une requête (sans filtre) :
SELECT Year([Tab Modif]), Month([Tab Modif]), Count(*) AS
Nombredemande
FROM [Tab Courrier Arrivé]
WHERE [Tab Courrier Arrivé].marine=True
GROUP BY Year([Tab Modif]), Month([Tab Modif])
ORDER BY Year([Tab Modif]), Month([Tab Modif]) ;

Ensuite, tu te positionnes à l'année que tu veux visualiser.

Richard.


"lograd" a écrit dans le message de news:

On 25 mar, 09:03, Fabien wrote:

On 24 mar, 18:46, lograd wrote:
On 24 mar, 15:50, "Richard_35" wrote:

Bonjour Lograd,
Il suffit donc d'ajouter, à ce formulaire (celui qui contient les
12
zones de texte), un champ supplémentaire dans lequel tu saisiras une
année
(Annee_saisie).
La valeur de tes zones de texte sera, pour janvier :
SELECT Count(*)
FROM Ta_Table
WHERE Year(Ta_Table.Date )=Annee_saisie
AND Month(Ta_Table.Date )=1
AND Ta_Table.ChampVF=True ;
Pour février :
SELECT Count(*)
FROM Ta_Table
WHERE Year(Ta_Table.Date )=Annee_saisie
AND Month(Ta_Table.Date )=2
AND Ta_Table.ChampVF=True ;
Etc...
Dis-nous et bon courage,
Richard.
"lograd" a écrit dans le message de news:

Encore bien compris, avec dans chaque zone de texte l'utilisation de
ma requête comme indiqué plus haut.
Merci pour la réponse, je vais essayer dès que possible.

Je reviendrais pour vous faire part de mes essais.

@+


Bonjour Richard.

J'ai essayé, pour janvier j'ai donc écrit ceci dans ma requête :
SELECT Count([Tab Courrier Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
WHERE (((Year([Tab Modif]=[Année]))<>False) AND ((Month([Tab
Modif]=1))<>False) AND (([Tab Courrier Arrivé].marine)=True));

Malheureusement le résultat est faux, le chiffre trouvé est éronnée.
De plus dans mon code j'ai " <>False qui apparait deux fois, et lors
du lancement de ma requête celle-ci me demande :
1) Entrée une valeur paramètre, Table modif
2) Entrée une valeur de paramètre, Année.

Pour l'année OK, mais pour la première valeur je ne comprend pas.
Dans ma Table courrier arrivée je veux compter toutes les cases
cochées Marine du mois de janvier, puis fevrier, puis mars etc... Mais
cela tu avais compris.

ALors ou ais-je fait une erreur.

Dans mon Formulaire j'ai déjà le fameux champs ' Année ', il est issu
de ma table ' Tab Modif '.

Suis-je claire ?

Je n'ai peut-être pas tout compris, détail un peu plus s'il te plait.

@+


Bonjour,
Une autre solution :
Une requete de type
SELECT Format([Tab Modif],"yyyymm") AS AnnéeMois, Count([Tab Courrier
Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
Having [Tab Courrier Arrivé].marine=True and Year(Tab Modif]=Year(now())
GROUP BY Format([Tab Modif],"yyyymm")
ORDER BY Format([Tab Modif],"yyyymm");

Te donnes le comptage de tes
[Tab Courrier Arrivé].marine qui sont à vrai pour l'année en cours en
les regroupants par Année Mois
Ensuite tu ajoute a ton formulaire principal un sous-formulaire mode
continu basé sur cette requete qui filtre sur l'année en cours.
@+


Merci pour vos réponses à Richard et Fabien, je continue sur l'idée de
Richard, mais je mets de côté celle de Fabien ;)

Je vous tiens au courant.

Mais j'ai l'impression que plus j'avance et plus je m'embrouille,
enfin à bientôt.

@+




Avatar
lograd
On 25 mar, 11:46, "Richard_35" wrote:
    Re,

    L'idée de Fabien est bonne et tu peux t'affranchir de la créat ion
"manuelle" de ton formulaire et abandonner ton formulaire avec tes 12 zone s
de texte.
    Donc, tu peux créer une requête (sans filtre) :
SELECT        Year([Tab Modif]), Month([Tab Modif]), Count(*) AS
Nombredemande
FROM           [Tab Courrier Arrivé]
WHERE         [Tab Courrier Arrivé].marine=True
GROUP BY   Year([Tab Modif]), Month([Tab Modif])
ORDER BY   Year([Tab Modif]), Month([Tab Modif]) ;

    Ensuite, tu te positionnes à l'année que tu veux visualiser.

    Richard.

"lograd" a écrit dans le message de news:

On 25 mar, 09:03, Fabien wrote:






On 24 mar, 18:46, lograd wrote:
On 24 mar, 15:50, "Richard_35" wrote:

    Bonjour Lograd,
    Il suffit donc d'ajouter, à ce formulaire (celui qui conti ent les
12
zones de texte), un champ supplémentaire dans lequel tu saisiras u ne
année
(Annee_saisie).
    La valeur de tes zones de texte sera, pour janvier :
SELECT Count(*)
FROM Ta_Table
WHERE   Year(Ta_Table.Date )=Annee_saisie
                AND Month(Ta_Table.Date )=1
                AND Ta_Table.ChampVF=True ;
    Pour février :
SELECT Count(*)
FROM Ta_Table
WHERE   Year(Ta_Table.Date )=Annee_saisie
                AND Month(Ta_Table.Date )=2
                AND Ta_Table.ChampVF=True ;
    Etc...
    Dis-nous et bon courage,
    Richard.
"lograd" a écrit dans le message de news :

Encore bien compris, avec dans chaque zone de texte l'utilisation de
ma requête comme indiqué plus haut.
Merci pour la réponse, je vais essayer dès que possible.

Je reviendrais pour vous faire part de mes essais.

@+


Bonjour Richard.

J'ai essayé, pour janvier j'ai donc écrit ceci dans ma requête :
SELECT Count([Tab Courrier Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
WHERE (((Year([Tab Modif]=[Année]))<>False) AND ((Month([Tab
Modif]=1))<>False) AND (([Tab Courrier Arrivé].marine)=True));

Malheureusement le résultat est faux, le chiffre trouvé est éron née.
De plus dans mon code j'ai " <>False qui apparait deux fois, et lors
du lancement de ma requête celle-ci me demande :
1) Entrée une valeur paramètre, Table modif
2) Entrée une valeur de paramètre, Année.

Pour l'année OK, mais pour la première valeur je ne comprend pas.
Dans ma Table courrier arrivée je veux compter toutes les cases
cochées Marine du mois de janvier, puis fevrier, puis mars etc... Ma is
cela tu avais compris.

ALors ou ais-je fait une erreur.

Dans mon Formulaire j'ai déjà le fameux champs ' Année ', il est issu
de ma table ' Tab Modif '.

Suis-je claire ?

Je n'ai peut-être pas tout compris, détail un peu plus s'il te pla it.

@+


Bonjour,
Une autre solution :
Une requete de type
SELECT Format([Tab Modif],"yyyymm") AS AnnéeMois, Count([Tab Courrier
Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
Having [Tab Courrier Arrivé].marine=True and Year(Tab Modif]=Year( now())
GROUP BY Format([Tab Modif],"yyyymm")
ORDER BY Format([Tab Modif],"yyyymm");

Te donnes le comptage de tes
[Tab Courrier Arrivé].marine qui sont à vrai pour l'année en cours en
les regroupants par Année Mois
Ensuite tu ajoute a ton formulaire principal un sous-formulaire mode
continu basé sur cette requete qui filtre sur l'année en cours.
@+


Merci pour vos réponses à Richard et Fabien, je continue sur l'idée de
Richard, mais je mets de côté celle de Fabien ;)

Je vous tiens au courant.

Mais j'ai l'impression que plus j'avance et plus je m'embrouille,
enfin à bientôt.

@+- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Alors là, c'est de l'info !!! ;)

Je vais essayer tout cela ce soir .

@+





Avatar
lograd
Bonjour, encore le boulet .

1) La requête de Fabien ne fonctionne pas.

SELECT Format([Tab Modif],"yyyymm") AS AnnéeMois, Count([Tab Courrier
Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
Having [Tab Courrier Arrivé].marine=True and Year(Tab
Modif]=Year(now())
GROUP BY Format([Tab Modif],"yyyymm")
ORDER BY Format([Tab Modif],"yyyymm");

2) Et celle-ci non plus
SELECT Year([Tab Modif]), Month([Tab Modif]), Count(*) AS
Nombredemande
FROM [Tab Courrier Arrivé]
WHERE [Tab Courrier Arrivé].marine=True
GROUP BY Year([Tab Modif]), Month([Tab Modif])
ORDER BY Year([Tab Modif]), Month([Tab Modif]) ;

Je pense que ma table [Tab Modif] pose des soucis mais je ne sais pas
pourquoi?
Cette table est composée comme suit :
Un champs numéro auto
Un champs texte (Année) pour rentrer l'année, ex 2008.

Je ne saisis pas cette phrase : Ensuite, tu te positionnes à l'année
que tu veux visualiser.

Bref, je coule normalement.

En résumer, je reprend depuis le début.

Dans mon formulaire construit qu'avec mes 12 zones de textes et dans
' Source contrôle ' pour chaque zones de textes j'utilise ma requête
comme ceci pour dénombrer : =CpteDom("[marine]";"[Req Demandes en
Janvier Marine]").

J'ai créer les requétes de Richard et de Fabien mais sans réussite.

On oubli ma table Modif.

Je choisi plutôt l'option d'un champs dans mon formulaire à 12 zones
de textes ou je rentre l'année qui m'interresse et à partir de cette
date faire le comptage et le trie dans ma table courrier arrivée.

Précision, dans ma table courrier arrivée, j'ai un champs date
( =maintenant() ).

Suis-je claire ?
Merci de votre patience et de votre aide.

PS: le champs à rajouter dans mon formulaire, c'est un champ zone de
texte aussi ?
Avatar
Fabien
Bonjour, encore le boulet .

1) La requête de Fabien ne fonctionne pas.

SELECT Format([Tab Modif],"yyyymm") AS AnnéeMois, Count([Tab Courrier
Arrivé].marine) AS Nombredemande
FROM [Tab Courrier Arrivé]
Having [Tab Courrier Arrivé].marine=True and Year(Tab
Modif]=Year(now())
GROUP BY Format([Tab Modif],"yyyymm")
ORDER BY Format([Tab Modif],"yyyymm");

2) Et celle-ci non plus
SELECT Year([Tab Modif]), Month([Tab Modif]), Count(*) AS
Nombredemande
FROM [Tab Courrier Arrivé]
WHERE [Tab Courrier Arrivé].marine=True
GROUP BY Year([Tab Modif]), Month([Tab Modif])
ORDER BY Year([Tab Modif]), Month([Tab Modif]) ;

Je pense que ma table [Tab Modif] pose des soucis mais je ne sais pas
pourquoi?
Cette table est composée comme suit :
Un champs numéro auto
Un champs texte (Année) pour rentrer l'année, ex 2008.

Je ne saisis pas cette phrase : Ensuite, tu te positionnes à l'année
que tu veux visualiser.

Bref, je coule normalement.

En résumer, je reprend depuis le début.

Dans mon formulaire construit qu'avec mes 12 zones de textes et dans
' Source contrôle ' pour chaque zones de textes j'utilise ma requête
comme ceci pour dénombrer : =CpteDom("[marine]";"[Req Demandes en
Janvier Marine]").

J'ai créer les requétes de Richard et de Fabien mais sans réussite.

On oubli ma table Modif.

Je choisi plutôt l'option d'un champs dans mon formulaire à 12 zones
de textes ou je rentre l'année qui m'interresse et à partir de cette
date faire le comptage et le trie dans ma table courrier arrivée.

Précision, dans ma table courrier arrivée, j'ai un champs date
( =maintenant() ).

Suis-je claire ?
Merci de votre patience et de votre aide.

PS: le champs à rajouter dans mon formulaire, c'est un champ zone de
texte aussi ?

Bon

Ci-joint un exemple ;-)
http://cjoint.com/?dBq4Ujfp5F

Avatar
lograd
:) Excellent Fabien, un grand merci :)

C'est très bien, je comprends mieux.
Avec ton exemple je vais pouvoir adapter à ma base de données.

Encore un grand merci à vous deux.

@+
1 2