Requete SQL - Access2003

TOUPOU96 Messages postés 55 Statut Membre -  
fercink Messages postés 252 Statut Membre -
Bonjour à tous,
Voilà, j'ai une requête sous access pour compter les jours pendant lesquels un visiteur reste dans ma structure, le problème vient du fait que j'ai un jour en plus dans mon décompte et je ne vois pas ou est l'erreur.

J'ai deux tables:
FAM(Id_FAM,NOM,PRENOM,DATE_NAISSANCE,VILLE_ORIGINE)
SEJOURS(Id__SEJ,Id_FAM,ENTREE_SEJ,SORTIE_SEJ)
j'ai fabriqué une requete qui me permet de calculer les jours passés par un visiteur
dans mon hotel. Par exemple:

ENTREE_SEJ SORTIE_SEJ NBR_JOURS_MOIS_EN_COURS

02/07/2008 21/07/2008 20
22/12/2007 13/07/2008 13
01/04/2008 02/07/2008 2

NBR_JOURS_MOIS_EN_COURS:
DiffDate("j";VraiFaux(SEJOURS.ENTREE_SEJ<Date()-Jour(Date())+1;Date()-Jour(Date())+1;SEJOURS.ENTREE_SEJ);Vra
iFaux(VraiFaux(EstNull(SEJOURS.SORTIE_SEJ);Date();SEJOURS.SORTIE_SEJ)>Date();Date();VraiFaux(EstNull(SEJOURS
.SORTIE_SEJ);Date();SEJOURS.SORTIE_SEJ)))+1

Or, normallement la différence de nuitées entre le 02juillet et le 21
juillet est 19 jours et non 20. Pouvez vous m'aider à ajuster ma formule svp?

3 réponses

fercink Messages postés 252 Statut Membre 13
 
slt TOUPOU96, le problème vient du fait que par exemple meme si on rentre le 2 juillet et sort le 2 jullet, cela fera quand même un jour!La date d'entrée et de sortie est compter, ce qui rajoute un jour.
Il faut essayer de faire prendre la valeur de ton résultat en faisant -1.
Après je ne sais pas si tu fais juste du SQl ou par exemple du VB Net
0
TOUPOU96 Messages postés 55 Statut Membre 4
 
Bonjour Fercink et merci de ton intervention, je fais juste du sql et je ne suis pas encore calé sur VB. Je vais essayer de jongler avec avec les -1. Aurais tu un code VB à me proposer stp?
Merci et à bientot.
Toupou96
0
fercink Messages postés 252 Statut Membre 13
 
salut,
Pour le SQL, je en suis pas un pro, j'ai juste des bases
En VB c'est pareil mais je connais un peu.
Déjà, il faut déclarer une variable que nous apelerons résultat :
dim resultat as integer (déclaration de la variable resultat comme étant un entier)

Tout à la fin, après calcul du nombre de jour, tu met que :
resultat = resultat -1

console.writeline (resultat) (ceci est pour afficher le résultat en langage VB)
Après, pour relier le SQL avec le VB sa se fait (sous access par exemple avec des rs.Open "ta requete")

voila dsl c'est un peu confus mais je débute aussi en SQL.
0