OVH Cloud OVH Cloud

date en arrière

5 réponses
Avatar
Pierre-André
Bonjour,
La boucle ci-dessous fonctionne jusqu'au moment où elle me retourne une date
que est un mois plus tôt.

While IsNull(val_solde)
VAL_DATE = Format(DateAdd("d", -1, VAL_DATE), "mm\/dd\/yyyy")
val_actif = DSum("[MONTANT_ACTIF]", "compte", "[date_mouvement] = #"
& VAL_DATE & "#")
val_passif = DSum("[MONTANT_passif]", "compte", "[date_mouvement] =
#" & VAL_DATE & "#")
val_solde = val_actif - val_passif
Wend

Les premières dates sont remontées normalement ( depuis le 16.09.2005) et
soudain elle retrouve le 8.11.2005.

Je ne comprends pas pourquoi, la date ne figure pas dans ma tbl Compte.

Merci d'avance

Pgz

5 réponses

Avatar
3stone
Salut,

"Pierre-André"
| La boucle ci-dessous fonctionne jusqu'au moment où elle me retourne une date
| que est un mois plus tôt.
|
| While IsNull(val_solde)
| VAL_DATE = Format(DateAdd("d", -1, VAL_DATE), "mm/dd/yyyy")
| val_actif = DSum("[MONTANT_ACTIF]", "compte", "[date_mouvement] = #"
| & VAL_DATE & "#")
| val_passif = DSum("[MONTANT_passif]", "compte", "[date_mouvement] | #" & VAL_DATE & "#")
| val_solde = val_actif - val_passif
| Wend
|
| Les premières dates sont remontées normalement ( depuis le 16.09.2005) et
| soudain elle retrouve le 8.11.2005.
|
| Je ne comprends pas pourquoi, la date ne figure pas dans ma tbl Compte.


VAL_DATE est sûrement de type date...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
pgz
Il y a un truc qui m'étonne dans cette boucle:
si val_actif - val_passif est null, cela ne dvrait pas provoquer une erreur
'utilisation abusive de Null'?
Et si ce n'est pas le cas, pourquoi ce n'est pas la sortie directe de la
boucle?

Je m'égare?

pgz
Avatar
Pierre-André
bonjour,

VAL_DATE n'est pas déffini. (Dim val_date)
est-ce que mon code est juste?

merci

"3stone" a écrit dans le message de news:

Salut,

"Pierre-André"
| La boucle ci-dessous fonctionne jusqu'au moment où elle me retourne une
date
| que est un mois plus tôt.
|
| While IsNull(val_solde)
| VAL_DATE = Format(DateAdd("d", -1, VAL_DATE), "mm/dd/yyyy")
| val_actif = DSum("[MONTANT_ACTIF]", "compte", "[date_mouvement] =
#"
| & VAL_DATE & "#")
| val_passif = DSum("[MONTANT_passif]", "compte", "[date_mouvement]
| #" & VAL_DATE & "#")
| val_solde = val_actif - val_passif

| Wend
|
| Les premières dates sont remontées normalement ( depuis le 16.09.2005)
et
| soudain elle retrouve le 8.11.2005.
|
| Je ne comprends pas pourquoi, la date ne figure pas dans ma tbl Compte.


VAL_DATE est sûrement de type date...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/




Avatar
3stone
re,

"Pierre-André" <
| VAL_DATE n'est pas déffini. (Dim val_date)


Et donc il est Variant !!!

Pour garder le formatage US il devrait être String... mais dans ce cas,
le code est faux : (DateAdd() sur un String au lieu d'une Date)

Il faut donc le définir Date et le coder US au moment voulu (et non à l'avance...)
...ou utiliser une petite fonction!
http://www.self-access.com/access/grenier/acRedir.php?idy



Dim Val_Date as Date
Val_Date = ....


While IsNull(val_solde)

VAL_DATE = DateAdd("d", -1, VAL_DATE)

val_actif = DSum("[MONTANT_ACTIF]", "compte", "[date_mouvement]=" & Format(VAL_DATE,"#mm-dd-yyyy#)
val_passif = DSum("[MONTANT_passif]", "compte", "[date_mouvement]=" &
Format(VAL_DATE,"#mm-dd-yyyy#)

val_solde = val_actif - val_passif

Wend




| est-ce que mon code est juste?

Pour vérifier ta construction, place un point d'arrêt, et exécute
au pas à pas... cela te permet de vérifier la valeur retournée
par tes variables !


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
Pierre-André
Bonjour,

OK, ca fonctionne avec le bout de code qui suit, encore merci

pgz


"3stone" a écrit dans le message de news:

re,

"Pierre-André" <
| VAL_DATE n'est pas déffini. (Dim val_date)


Et donc il est Variant !!!

Pour garder le formatage US il devrait être String... mais dans ce cas,
le code est faux : (DateAdd() sur un String au lieu d'une Date)

Il faut donc le définir Date et le coder US au moment voulu (et non à
l'avance...)
...ou utiliser une petite fonction!
http://www.self-access.com/access/grenier/acRedir.php?idy



Dim Val_Date as Date
Val_Date = ....


While IsNull(val_solde)

VAL_DATE = DateAdd("d", -1, VAL_DATE)

val_actif = DSum("[MONTANT_ACTIF]", "compte", "[date_mouvement]=" &
Format(VAL_DATE,"#mm-dd-yyyy#)
val_passif = DSum("[MONTANT_passif]", "compte", "[date_mouvement]=" &
Format(VAL_DATE,"#mm-dd-yyyy#)

val_solde = val_actif - val_passif

Wend




| est-ce que mon code est juste?

Pour vérifier ta construction, place un point d'arrêt, et exécute
au pas à pas... cela te permet de vérifier la valeur retournée
par tes variables !


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/