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
Jessy Sempere [MVP]
Ben si...
Si Cnum ne fonctionne pas...

Regardes tes références, il y a de chances que tu en es qui soit
marquées "Manquante", si c'est le cas, tu dois les déselectionner.

--
@+
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:

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/






























Avatar
Hervé DUCARNE
Un truc de fou !

Je viens de créer une table 'essai' avec les champs dont j'ai besoin dans ma
requête.
J'ai créé la même requête mais basée sur la table essai,
et....................




















CA MARCHE !


Bon, je vais essayer de refaire la requête pour la bonne table et je te
tiens au courant !

@ tout'


"Jessy Sempere [MVP]" a écrit dans le message de
news:41dc0792$
Ben si...
Si Cnum ne fonctionne pas...

Regardes tes références, il y a de chances que tu en es qui soit
marquées "Manquante", si c'est le cas, tu dois les déselectionner.

--
@+
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:

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/


































Avatar
Hervé DUCARNE
CA MARCHE PAS !!!

Dans la requête, j'ajoute en mode création ma table essai, je change dans
les colonnes de ma requête la table foyer par la table essai, je vire la
table foyer, et ça marche.
Je refait l'opération inverse, et àa marche plus.
Ma table et ma requête ne peuvent pas se voir et se foutent sur la gueule,
mais pourquoi ??
Les noms des champs sont exactement les mêmes dans ma table essai, ça peut
venir d'où ?

@ +


"Hervé DUCARNE" a écrit dans le message de
news:
Un truc de fou !

Je viens de créer une table 'essai' avec les champs dont j'ai besoin dans
ma

requête.
J'ai créé la même requête mais basée sur la table essai,
et....................




















CA MARCHE !


Bon, je vais essayer de refaire la requête pour la bonne table et je te
tiens au courant !

@ tout'


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

news:41dc0792$
Ben si...
Si Cnum ne fonctionne pas...

Regardes tes références, il y a de chances que tu en es qui soit
marquées "Manquante", si c'est le cas, tu dois les déselectionner.

--
@+
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:

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/






































Avatar
Jessy Sempere [MVP]
Re,

Bon je résume :
- tblEssai et tblFoyer sont identique en tout point (type de donnée,
indexe, clé primaire, taille des champs, ...)

- les données contenue dans chaque tables sont identique en tout point
aussi...

Bon je dirais, ça sent le début de corruption de ta base... ;-(
Perso je ferais une nouvelle base de donnée et ensuite je ferais
un import de tous les objets de l'ancienne base.

PS : Essais quand même de faire un compactage de ta base avant
des fois que...

@+
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:
#
CA MARCHE PAS !!!

Dans la requête, j'ajoute en mode création ma table essai, je change dans
les colonnes de ma requête la table foyer par la table essai, je vire la
table foyer, et ça marche.
Je refait l'opération inverse, et àa marche plus.
Ma table et ma requête ne peuvent pas se voir et se foutent sur la gueule,
mais pourquoi ??
Les noms des champs sont exactement les mêmes dans ma table essai, ça peut
venir d'où ?

@ +




Avatar
Hervé DUCARNE
Ton résumé m'a fais comprendre le pourquoi du problème !
tu me dis les données contenues dans chaque table sont indentiques en tout
point ; en fait non, je me suis "amusé" ?à créer un jeu d'enregistrement
exemple...

J'ai essayé de coller les enregistrements de la table foyer, et hop, le
message à la con.

Certains foyers n'ont pas de date de commission, et/ou de date de début de
suivi et/ou de date de fin de suivi.

La cause vient de là !

Par contre, les enregistrements concernés par la clause WHERE doivent tous
avoir ces champs de renseignés, le code utilisateur est obligatoire, le
WHERE me sélectionne les enregistrements où la date de fin de suivi est
existante et les date de commission sont bien renseignées.
Par contre dans la table, d'autres utilisateurs peuvent saisir des foyers
qui ne sont pas passé en commission, ou n'ont pas de suivi fini....

Y'a un moyen contourner ça ??

Merci et @ +


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

Bon je résume :
- tblEssai et tblFoyer sont identique en tout point (type de donnée,
indexe, clé primaire, taille des champs, ...)

- les données contenue dans chaque tables sont identique en tout point
aussi...

Bon je dirais, ça sent le début de corruption de ta base... ;-(
Perso je ferais une nouvelle base de donnée et ensuite je ferais
un import de tous les objets de l'ancienne base.

PS : Essais quand même de faire un compactage de ta base avant
des fois que...

@+
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:
#
CA MARCHE PAS !!!

Dans la requête, j'ajoute en mode création ma table essai, je change
dans


les colonnes de ma requête la table foyer par la table essai, je vire la
table foyer, et ça marche.
Je refait l'opération inverse, et àa marche plus.
Ma table et ma requête ne peuvent pas se voir et se foutent sur la
gueule,


mais pourquoi ??
Les noms des champs sont exactement les mêmes dans ma table essai, ça
peut


venir d'où ?

@ +









Avatar
Jessy Sempere [MVP]
Bonjour

En fait tu dois rajouter dans le code une condition ou plusieurs
pour tester les dates, si elles sont nulles, tu spécifis le code à
effectuer et du coup le résultat que doit retourner la fonction
sinon tu fais le code normal...

@+
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:
#$
Ton résumé m'a fais comprendre le pourquoi du problème !
tu me dis les données contenues dans chaque table sont indentiques en tout
point ; en fait non, je me suis "amusé" ?à créer un jeu d'enregistrement
exemple...

J'ai essayé de coller les enregistrements de la table foyer, et hop, le
message à la con.

Certains foyers n'ont pas de date de commission, et/ou de date de début de
suivi et/ou de date de fin de suivi.

La cause vient de là !

Par contre, les enregistrements concernés par la clause WHERE doivent tous
avoir ces champs de renseignés, le code utilisateur est obligatoire, le
WHERE me sélectionne les enregistrements où la date de fin de suivi est
existante et les date de commission sont bien renseignées.
Par contre dans la table, d'autres utilisateurs peuvent saisir des foyers
qui ne sont pas passé en commission, ou n'ont pas de suivi fini....

Y'a un moyen contourner ça ??

Merci et @ +


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

news:41dc0eb3$
Re,

Bon je résume :
- tblEssai et tblFoyer sont identique en tout point (type de donnée,
indexe, clé primaire, taille des champs, ...)

- les données contenue dans chaque tables sont identique en tout
point


aussi...

Bon je dirais, ça sent le début de corruption de ta base... ;-(
Perso je ferais une nouvelle base de donnée et ensuite je ferais
un import de tous les objets de l'ancienne base.

PS : Essais quand même de faire un compactage de ta base avant
des fois que...

@+
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:
#
CA MARCHE PAS !!!

Dans la requête, j'ajoute en mode création ma table essai, je change
dans


les colonnes de ma requête la table foyer par la table essai, je vire
la



table foyer, et ça marche.
Je refait l'opération inverse, et àa marche plus.
Ma table et ma requête ne peuvent pas se voir et se foutent sur la
gueule,


mais pourquoi ??
Les noms des champs sont exactement les mêmes dans ma table essai, ça
peut


venir d'où ?

@ +













Avatar
Hervé DUCARNE
Salut et merci,
mais si je rajoute dans le code par exemple 'If date_commission Is Null
Then' il tire la tronche en me disant 'objet requis'.
T'as une idée pour le code que je dois rajouter ?
C'est quand même bizarre que la fonction balaie toute la table alors que
dans la requête seuls les enregistrements avec toutes les données sont
traités (et tous ont tous les champs dont il est question dans la requête
remplis).

@+


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

En fait tu dois rajouter dans le code une condition ou plusieurs
pour tester les dates, si elles sont nulles, tu spécifis le code à
effectuer et du coup le résultat que doit retourner la fonction
sinon tu fais le code normal...

@+
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:
#$
Ton résumé m'a fais comprendre le pourquoi du problème !
tu me dis les données contenues dans chaque table sont indentiques en
tout


point ; en fait non, je me suis "amusé" ?à créer un jeu d'enregistrement
exemple...

J'ai essayé de coller les enregistrements de la table foyer, et hop, le
message à la con.

Certains foyers n'ont pas de date de commission, et/ou de date de début
de


suivi et/ou de date de fin de suivi.

La cause vient de là !

Par contre, les enregistrements concernés par la clause WHERE doivent
tous


avoir ces champs de renseignés, le code utilisateur est obligatoire, le
WHERE me sélectionne les enregistrements où la date de fin de suivi est
existante et les date de commission sont bien renseignées.
Par contre dans la table, d'autres utilisateurs peuvent saisir des
foyers


qui ne sont pas passé en commission, ou n'ont pas de suivi fini....

Y'a un moyen contourner ça ??

Merci et @ +


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


de
news:41dc0eb3$
Re,

Bon je résume :
- tblEssai et tblFoyer sont identique en tout point (type de
donnée,



indexe, clé primaire, taille des champs, ...)

- les données contenue dans chaque tables sont identique en tout
point


aussi...

Bon je dirais, ça sent le début de corruption de ta base... ;-(
Perso je ferais une nouvelle base de donnée et ensuite je ferais
un import de tous les objets de l'ancienne base.

PS : Essais quand même de faire un compactage de ta base avant
des fois que...

@+
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:
#
CA MARCHE PAS !!!

Dans la requête, j'ajoute en mode création ma table essai, je change
dans


les colonnes de ma requête la table foyer par la table essai, je
vire




la
table foyer, et ça marche.
Je refait l'opération inverse, et àa marche plus.
Ma table et ma requête ne peuvent pas se voir et se foutent sur la
gueule,


mais pourquoi ??
Les noms des champs sont exactement les mêmes dans ma table essai,
ça




peut
venir d'où ?

@ +

















Avatar
Jessy Sempere [MVP]
En fait il faut mettre

If IsNull(Date_Commission) or Isnull(Date_x) or ...Then
{instruction}
Else
{Instruction}
End If

--
@+
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:

Salut et merci,
mais si je rajoute dans le code par exemple 'If date_commission Is Null
Then' il tire la tronche en me disant 'objet requis'.
T'as une idée pour le code que je dois rajouter ?
C'est quand même bizarre que la fonction balaie toute la table alors que
dans la requête seuls les enregistrements avec toutes les données sont
traités (et tous ont tous les champs dont il est question dans la requête
remplis).

@+


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

news:41dceda5$
Bonjour

En fait tu dois rajouter dans le code une condition ou plusieurs
pour tester les dates, si elles sont nulles, tu spécifis le code à
effectuer et du coup le résultat que doit retourner la fonction
sinon tu fais le code normal...

@+
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:
#$
Ton résumé m'a fais comprendre le pourquoi du problème !
tu me dis les données contenues dans chaque table sont indentiques en
tout


point ; en fait non, je me suis "amusé" ?à créer un jeu
d'enregistrement



exemple...

J'ai essayé de coller les enregistrements de la table foyer, et hop,
le



message à la con.

Certains foyers n'ont pas de date de commission, et/ou de date de
début



de
suivi et/ou de date de fin de suivi.

La cause vient de là !

Par contre, les enregistrements concernés par la clause WHERE doivent
tous


avoir ces champs de renseignés, le code utilisateur est obligatoire,
le



WHERE me sélectionne les enregistrements où la date de fin de suivi
est



existante et les date de commission sont bien renseignées.
Par contre dans la table, d'autres utilisateurs peuvent saisir des
foyers


qui ne sont pas passé en commission, ou n'ont pas de suivi fini....

Y'a un moyen contourner ça ??

Merci et @ +


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


de
news:41dc0eb3$
Re,

Bon je résume :
- tblEssai et tblFoyer sont identique en tout point (type de
donnée,



indexe, clé primaire, taille des champs, ...)

- les données contenue dans chaque tables sont identique en tout
point


aussi...

Bon je dirais, ça sent le début de corruption de ta base... ;-(
Perso je ferais une nouvelle base de donnée et ensuite je ferais
un import de tous les objets de l'ancienne base.

PS : Essais quand même de faire un compactage de ta base avant
des fois que...

@+
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:




#
CA MARCHE PAS !!!

Dans la requête, j'ajoute en mode création ma table essai, je
change





dans
les colonnes de ma requête la table foyer par la table essai, je
vire




la
table foyer, et ça marche.
Je refait l'opération inverse, et àa marche plus.
Ma table et ma requête ne peuvent pas se voir et se foutent sur la
gueule,


mais pourquoi ??
Les noms des champs sont exactement les mêmes dans ma table essai,
ça




peut
venir d'où ?

@ +





















Avatar
Jessy Sempere [MVP]
En fait essais avec la fonction modifiée comme suit :

Function NbMonth(dtDeb As Date, dtFin As Date)
Dim i%, dt As Date
Dim nbAugust As Integer

If IsNull(dtDeb) Or IsNull(dtFin) Then
NbMonth = 0
Else
For i = Year(dtDeb) To Year(dtFin)
dt = CDate("01/08/" & i)
If dt > dtDeb And dt < dtFin Then nbAugust = nbAugust + 1
Next
NbMonth = DateDiff("m", dtDeb, dtFin) - nbAugust
End If
End Function
--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" a écrit dans le message
news: 41dd0886$
En fait il faut mettre

If IsNull(Date_Commission) or Isnull(Date_x) or ...Then
{instruction}
Else
{Instruction}
End If

--
@+
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 c'est idem --> plantage.

J'ai mis un point d'arrêt sur la fonction à la ligne contenant la condition.
la fonction s'exécute 43 fois, et plante à la 44ème fois. Je suis allé voir
dans la table, il s'agit du 1er enregistrement sans date de commission (il
n'a pas de date de début de suivi non plus).
Je lui en ai mis des fictives, ça plante à l'enregistrement d'après, ça
vient donc bien de là !!!!!!!!!!

Par contre les isnull ne font rien.

J'ai essayé avec AND et XOR, idem..

C la mémé c'est la mémerde !


"Jessy Sempere [MVP]" a écrit dans le message de
news:41dd0a0e$
En fait essais avec la fonction modifiée comme suit :

Function NbMonth(dtDeb As Date, dtFin As Date)
Dim i%, dt As Date
Dim nbAugust As Integer

If IsNull(dtDeb) Or IsNull(dtFin) Then
NbMonth = 0
Else
For i = Year(dtDeb) To Year(dtFin)
dt = CDate("01/08/" & i)
If dt > dtDeb And dt < dtFin Then nbAugust = nbAugust + 1
Next
NbMonth = DateDiff("m", dtDeb, dtFin) - nbAugust
End If
End Function
--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" a écrit dans le message
news: 41dd0886$
En fait il faut mettre

If IsNull(Date_Commission) or Isnull(Date_x) or ...Then
{instruction}
Else
{Instruction}
End If

--
@+
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