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

Vérifier la présence d'un mois

42 réponses
Avatar
Hervé DUCARNE
Salut !
Bon, ça fait +sieurs heures que je me casse la tête avec ce problème, et je
commence à chauffer...
Voici mon problème.
Je dois calculer le nombre de mois entre deux date, mais si le mois d'août
et compris dans la période, le décompter (la période peut aller, allez on va
dire 3 années maxi je pense).
Tout ça, je dois le vérifier dans une requête (plusieurs même, mais je
n'arrive pas à différencier tous les cas possibles à cause de cette
possibilité de multi année)
Quelqu'un a déjà solutionner ce genre de truc ?
Merci !

10 réponses

1 2 3 4 5
Avatar
Hervé DUCARNE
"Hervé DUCARNE" a écrit dans le message de
news:%

"Jessy Sempere [MVP]" a écrit dans le message
de

news:41da755e$
Re,

Alors est ce que les champs date_commission et date_debut_suivi
font bien parti de la table foyer ?
OUI


Ensuite vu que tu as une la ligne Having..., tu devrais avoir
logiquement


le champ [foyer].[code_utilisateur] dans ton select sinon ça ne peut pas
marcher...


Je pense que ça devrait marcher, il n'est pas dans le select car j'ai pas
besoin de le faire apparaître, il me faut juste le nombre de foyers.
Bizarrement, en enlevant ce champ (code_utilisateur) dans la requête, je
n'ai plus la même erreur :
Type de données icompatible dans l'expression du critère.
Je pense donc qu'Access me renvoie le résultat de la fonction dans un
format

non numérique...

Merci.


A zcuz, dans le HAVING. C'était une erreur de ma part, je faisais des tests
pour faire marcher cette !}# de requête. Dans le WHERE c'est pareil...


Avatar
Hervé DUCARNE
"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41da755e$
Re,

Alors est ce que les champs date_commission et date_debut_suivi
font bien parti de la table foyer ?
OUI


Ensuite vu que tu as une la ligne Having..., tu devrais avoir
logiquement


le champ [foyer].[code_utilisateur] dans ton select sinon ça ne peut
pas



marcher...


Je pense que ça devrait marcher, il n'est pas dans le select car j'ai
pas


besoin de le faire apparaître, il me faut juste le nombre de foyers.
Bizarrement, en enlevant ce champ (code_utilisateur) dans la requête, je
n'ai plus la même erreur :
Type de données icompatible dans l'expression du critère.
Je pense donc qu'Access me renvoie le résultat de la fonction dans un
format

non numérique...

Merci.


A zcuz, dans le HAVING. C'était une erreur de ma part, je faisais des
tests

pour faire marcher cette !}# de requête. Dans le WHERE c'est pareil...

Bonjour,

T'as une idée alors Jessy ?
@+



Avatar
Jessy Sempere [MVP]
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------

T'as une idée alors Jessy ?


Avatar
Hervé DUCARNE
Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like [forms]![choix_utilisateur]![texte7]) AND
((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0] And
(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));

Le message d'erreur "cette expression présente une syntaxe incorrecte ou est
trop complexe pour être évaluée. Par exemple une expression numérique peut
contenir des éléments trop compliqués. Essayez de la simplifier en en
affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans le message de
news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/


Avatar
Jessy Sempere [MVP]
Re,

as-tu essayer chaque critère séparement pour trouver lequel
peut poser pb ???

Perso je pense que le problème vient du type de donnée que tu mets
dans texte7 ou texte0 ou texte2 mais de la fonction...
et je pencherais plus pour un pb sur texte7 qui doit être du texte
alors que code_utilisateur est sûrement du numérique ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like [forms]![choix_utilisateur]![texte7]) AND
((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0]
And

(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));

Le message d'erreur "cette expression présente une syntaxe incorrecte ou
est

trop complexe pour être évaluée. Par exemple une expression numérique peut
contenir des éléments trop compliqués. Essayez de la simplifier en en
affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans le message
de

news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/






Avatar
Hervé DUCARNE
Merci de me répondre, mais :
toutes mes autres requêtes comportent aussi ces 3 conditions et fonctionnent
sans problème.
Je les ai viré, et le message d'erreur est modifié : 'Type de données
incompatibles dans l'expression du critère'.
la requête est sans les 3 conditions :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0));

C'est la mémerde !
@+


"Jessy Sempere [MVP]" a écrit dans le message de
news:41dbc74c$
Re,

as-tu essayer chaque critère séparement pour trouver lequel
peut poser pb ???

Perso je pense que le problème vient du type de donnée que tu mets
dans texte7 ou texte0 ou texte2 mais de la fonction...
et je pencherais plus pour un pb sur texte7 qui doit être du texte
alors que code_utilisateur est sûrement du numérique ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like [forms]![choix_utilisateur]![texte7]) AND
((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0]
And


(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));



Le message d'erreur "cette expression présente une syntaxe incorrecte ou
est

trop complexe pour être évaluée. Par exemple une expression numérique
peut


contenir des éléments trop compliqués. Essayez de la simplifier en en
affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/










Avatar
Jessy Sempere [MVP]
Re,

Ben écoutes, je n'ai pas le pb chez moi ?????
Essais peut-être de changer la fonction en mettant :

Fonction nbMonth(...) AS LONG

Ou alors essais en changeant ton WHERE par :
WHERE (CNum(nbmonth([date_commission],[date_debut_suivi]))>=0)

Et sinon, je suis sous Access 2000 au boulot, donc si tu veux tu peux
m'envoyer un extrait de ta base pour que je regardes ce qui peut cocher.

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:
OrKD$
Merci de me répondre, mais :
toutes mes autres requêtes comportent aussi ces 3 conditions et
fonctionnent

sans problème.
Je les ai viré, et le message d'erreur est modifié : 'Type de données
incompatibles dans l'expression du critère'.
la requête est sans les 3 conditions :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0));

C'est la mémerde !
@+


"Jessy Sempere [MVP]" a écrit dans le message
de

news:41dbc74c$
Re,

as-tu essayer chaque critère séparement pour trouver lequel
peut poser pb ???

Perso je pense que le problème vient du type de donnée que tu mets
dans texte7 ou texte0 ou texte2 mais de la fonction...
et je pencherais plus pour un pb sur texte7 qui doit être du texte
alors que code_utilisateur est sûrement du numérique ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like [forms]![choix_utilisateur]![texte7])
AND




((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0]



And

(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));



Le message d'erreur "cette expression présente une syntaxe incorrecte
ou



est
trop complexe pour être évaluée. Par exemple une expression numérique
peut


contenir des éléments trop compliqués. Essayez de la simplifier en en
affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/














Avatar
Hervé DUCARNE
Merci,
mais le AS LONG n'a rien résolu, et la fonction Cnum n'est pas reconnue
(message d'erreur 'Fonction 'CNum' non définie dans l'expression').
Au fait, la version d'Access est la 2002.

Merci et @+

"Jessy Sempere [MVP]" a écrit dans le message de
news:41dbec7e$
Re,

Ben écoutes, je n'ai pas le pb chez moi ?????
Essais peut-être de changer la fonction en mettant :

Fonction nbMonth(...) AS LONG

Ou alors essais en changeant ton WHERE par :
WHERE (CNum(nbmonth([date_commission],[date_debut_suivi]))>=0)

Et sinon, je suis sous Access 2000 au boulot, donc si tu veux tu peux
m'envoyer un extrait de ta base pour que je regardes ce qui peut cocher.

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:
OrKD$
Merci de me répondre, mais :
toutes mes autres requêtes comportent aussi ces 3 conditions et
fonctionnent

sans problème.
Je les ai viré, et le message d'erreur est modifié : 'Type de données
incompatibles dans l'expression du critère'.
la requête est sans les 3 conditions :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0));

C'est la mémerde !
@+


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbc74c$
Re,

as-tu essayer chaque critère séparement pour trouver lequel
peut poser pb ???

Perso je pense que le problème vient du type de donnée que tu mets
dans texte7 ou texte0 ou texte2 mais de la fonction...
et je pencherais plus pour un pb sur texte7 qui doit être du texte
alors que code_utilisateur est sûrement du numérique ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like [forms]![choix_utilisateur]![texte7])
AND




((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0]



And




(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));



Le message d'erreur "cette expression présente une syntaxe
incorrecte




ou
est
trop complexe pour être évaluée. Par exemple une expression
numérique




peut
contenir des éléments trop compliqués. Essayez de la simplifier en
en




affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/


















Avatar
Jessy Sempere [MVP]
En fait le CNum(...) c'est dans le générateur de requête, en SQL,
c'est Val(...)

Alors ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Merci,
mais le AS LONG n'a rien résolu, et la fonction Cnum n'est pas reconnue
(message d'erreur 'Fonction 'CNum' non définie dans l'expression').
Au fait, la version d'Access est la 2002.

Merci et @+

"Jessy Sempere [MVP]" a écrit dans le message
de

news:41dbec7e$
Re,

Ben écoutes, je n'ai pas le pb chez moi ?????
Essais peut-être de changer la fonction en mettant :

Fonction nbMonth(...) AS LONG

Ou alors essais en changeant ton WHERE par :
WHERE (CNum(nbmonth([date_commission],[date_debut_suivi]))>=0)

Et sinon, je suis sous Access 2000 au boulot, donc si tu veux tu peux
m'envoyer un extrait de ta base pour que je regardes ce qui peut cocher.

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:
OrKD$
Merci de me répondre, mais :
toutes mes autres requêtes comportent aussi ces 3 conditions et
fonctionnent

sans problème.
Je les ai viré, et le message d'erreur est modifié : 'Type de données
incompatibles dans l'expression du critère'.
la requête est sans les 3 conditions :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0));

C'est la mémerde !
@+


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbc74c$
Re,

as-tu essayer chaque critère séparement pour trouver lequel
peut poser pb ???

Perso je pense que le problème vient du type de donnée que tu mets
dans texte7 ou texte0 ou texte2 mais de la fonction...
et je pencherais plus pour un pb sur texte7 qui doit être du texte
alors que code_utilisateur est sûrement du numérique ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message
news:





Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like
[forms]![choix_utilisateur]![texte7])





AND

((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0]



And




(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));



Le message d'erreur "cette expression présente une syntaxe
incorrecte




ou
est
trop complexe pour être évaluée. Par exemple une expression
numérique




peut
contenir des éléments trop compliqués. Essayez de la simplifier en
en




affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/






















Avatar
Hervé DUCARNE
Pareil :-(

Y'aurais pas une histoire de références ptète ?????

"Jessy Sempere [MVP]" a écrit dans le message de
news:41dc0271$
En fait le CNum(...) c'est dans le générateur de requête, en SQL,
c'est Val(...)

Alors ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Merci,
mais le AS LONG n'a rien résolu, et la fonction Cnum n'est pas reconnue
(message d'erreur 'Fonction 'CNum' non définie dans l'expression').
Au fait, la version d'Access est la 2002.

Merci et @+

"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbec7e$
Re,

Ben écoutes, je n'ai pas le pb chez moi ?????
Essais peut-être de changer la fonction en mettant :

Fonction nbMonth(...) AS LONG

Ou alors essais en changeant ton WHERE par :
WHERE (CNum(nbmonth([date_commission],[date_debut_suivi]))>=0)

Et sinon, je suis sous Access 2000 au boulot, donc si tu veux tu peux
m'envoyer un extrait de ta base pour que je regardes ce qui peut
cocher.




@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:
OrKD$
Merci de me répondre, mais :
toutes mes autres requêtes comportent aussi ces 3 conditions et
fonctionnent

sans problème.
Je les ai viré, et le message d'erreur est modifié : 'Type de
données




incompatibles dans l'expression du critère'.
la requête est sans les 3 conditions :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0));

C'est la mémerde !
@+


"Jessy Sempere [MVP]" a écrit dans le
message


de
news:41dbc74c$
Re,

as-tu essayer chaque critère séparement pour trouver lequel
peut poser pb ???

Perso je pense que le problème vient du type de donnée que tu mets
dans texte7 ou texte0 ou texte2 mais de la fonction...
et je pencherais plus pour un pb sur texte7 qui doit être du texte
alors que code_utilisateur est sûrement du numérique ???

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message
news:





Pas de quoi être désolé, t'es pas à mon service !
Voilà le code extact :
SELECT Count(foyer.ci_foyer) AS CompteDeci_foyer
FROM foyer
WHERE (((nbmonth([date_commission],[date_debut_suivi]))>=0) AND
((foyer.code_utilisateur) Like
[forms]![choix_utilisateur]![texte7])





AND





((foyer.date_fin_mesure)>=[forms]![saisie_periode_statistiques]![texte0]



And







(foyer.date_fin_mesure)<=[forms]![saisie_periode_statistiques]![texte2]));



Le message d'erreur "cette expression présente une syntaxe
incorrecte




ou
est
trop complexe pour être évaluée. Par exemple une expression
numérique




peut
contenir des éléments trop compliqués. Essayez de la simplifier
en






en
affectant des parties à des variables".
(tiens j'avais jamais fait gaffe à la répétition du 'en' ;-))))

Merci encore !

"Jessy Sempere [MVP]" a écrit dans
le






message
de
news:41dbbb77$
Bonjour

Désolé, beaucoup de réunion en ce moment, j'arrive à peine...
Donc peux-tu me donner le vrai SQL, le premier qui plente
et me dire le message d'erreur correspondant à ce même SQL ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/


























1 2 3 4 5