Blème de date putot zarbi !

Le
Pierre
Sous Windows XP, avec Access 2000, je veux donner à l'utilisateur
la possibité de saisir la date de la facture.
J'ai écrit le code suivant :

Dim DF As String
DF = InputBox("Indiquez la date de la facture",
CurrentDb.Properties("AppTitle"), Date)
Dim DateFact As Variant
DateFact = "#" & DF & "#"

Dim SQLst As String 'Sélect Tiers
SQLst = "INSERT INTO TL_Factures_Sélect_Tiers ( FST_Clé_Tiers,
FST_Montant_Total_HT, FST_Fact_Num_Max_Précédent, FST_Fact_Date ) " & _
"SELECT R_Prestations_NonFacturées.P_Clé_Tiers,
Sum(R_Prestations_NonFacturées.Montant_HT) AS Montant_Total_HT, " &
FactNumMax & " AS Fact_Num_Max_Précédent, " & DateFact & " AS Dat_Fact " & _
"FROM R_Prestations_NonFacturées " & _
"WHERE ((R_Prestations_NonFacturées.P_ON)=-1) " & _
"GROUP BY R_Prestations_NonFacturées.P_Clé_Tiers, " & FactNumMax
DoCmd.RunSQL SQLst

Si la date du jour saisi est inférieur à 12 il prend la date du jour pour le
mois
pour 05/04/05 il retourne 4 mai 2005

Si la date du jour saisi est supérieure à 12 il retourne la bonne date
pour 21/04/05 il retourne 21 avril 2005

Merci par avance pour votre aide à régler ce problème
Pierre
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #5008271
Bonsoir.

éternel problème type US.

compte tenu de ta procédure je ferais tout en date comme ceci (pas besoin de
DF):
dim DateFact As Date
DateFact = InputBox("Indiquez la date de la facture",
CurrentDb.Properties("AppTitle"), Date)
vba traduira lui-même le champ Datefact dans la bonne présentation.

si tu veux indiquer des # il faut traduire la date en type US, ce qui n'est
pas nécessaire dans ton cas.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pierre" news:407195de$0$297$
Sous Windows XP, avec Access 2000, je veux donner à l'utilisateur
la possibité de saisir la date de la facture.
J'ai écrit le code suivant :

Dim DF As String
DF = InputBox("Indiquez la date de la facture",
CurrentDb.Properties("AppTitle"), Date)
Dim DateFact As Variant
DateFact = "#" & DF & "#"

Dim SQLst As String 'Sélect Tiers
SQLst = "INSERT INTO TL_Factures_Sélect_Tiers ( FST_Clé_Tiers,
FST_Montant_Total_HT, FST_Fact_Num_Max_Précédent, FST_Fact_Date ) " & _
"SELECT R_Prestations_NonFacturées.P_Clé_Tiers,
Sum(R_Prestations_NonFacturées.Montant_HT) AS Montant_Total_HT, " &
FactNumMax & " AS Fact_Num_Max_Précédent, " & DateFact & " AS Dat_Fact " &
_

"FROM R_Prestations_NonFacturées " & _
"WHERE ((R_Prestations_NonFacturées.P_ON)=-1) " & _
"GROUP BY R_Prestations_NonFacturées.P_Clé_Tiers, " &
FactNumMax

DoCmd.RunSQL SQLst

Si la date du jour saisi est inférieur à 12 il prend la date du jour pour
le

mois
pour 05/04/05 il retourne 4 mai 2005

Si la date du jour saisi est supérieure à 12 il retourne la bonne date
pour 21/04/05 il retourne 21 avril 2005

Merci par avance pour votre aide à régler ce problème
Pierre




Pierre
Le #5008111
Raymond,
Merci pour ta réponse, mais je n'ai pas réussi,

Pour 06/04/04

Sans dièses et avec DateFact as Date ou as Variant,
j'obtiens 30 décembre 1899

Avec dièses et avec DateFact as Date,
j'obtiens une erreur

Avec dièses et avec DateFact as Variant,
j'obtiens 4 juin 2004

Il serait peut être nécessaire de traduire la date au format US,
mais je ne sais pas comment faire !

Merci par avance pour ton aide
Pierre
www.eztree-msdn.com \( Laurent Jordi \)
Le #5008081
Salut,

Les bons vieux pb de date... en fait le moyen le plus sûr pour ne pas être
emm....dé est le suivant.

DateFR = format(cvdate(madatetexte)),"dd/mm/yyyy")
DateUS = format(cvdate(madatetexte)),"mm/dd/yyyy")

@+

LJ
www.eztree-msdn.com



"Pierre" news:40724fec$0$289$
Raymond,
Merci pour ta réponse, mais je n'ai pas réussi,

Pour 06/04/04

Sans dièses et avec DateFact as Date ou as Variant,
j'obtiens 30 décembre 1899

Avec dièses et avec DateFact as Date,
j'obtiens une erreur

Avec dièses et avec DateFact as Variant,
j'obtiens 4 juin 2004

Il serait peut être nécessaire de traduire la date au format US,
mais je ne sais pas comment faire !

Merci par avance pour ton aide
Pierre




Raymond [mvp]
Le #5008001
Bonjour.

exact .

juste une remarque, le cvdate n'est plus indispensable.
pour pierre, tu peux faire donc comme ceci:
DateFact = "#" & Format(DF, "dd/mm/yyyy") & "#"


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"www.eztree-msdn.com ( Laurent Jordi )" message de news:
Salut,

Les bons vieux pb de date... en fait le moyen le plus sûr pour ne pas être
emm....dé est le suivant.

DateFR = format(cvdate(madatetexte)),"dd/mm/yyyy")
DateUS = format(cvdate(madatetexte)),"mm/dd/yyyy")


JC
Le #5007861
Salut,

Pourquoi a t on ce format US ?
N'y a t il pas moyen de tout avoir au format jj/mm/aa ?


Merci,



Raymond [mvp] wrote:
Bonjour.

exact .

juste une remarque, le cvdate n'est plus indispensable.
pour pierre, tu peux faire donc comme ceci:
DateFact = "#" & Format(DF, "dd/mm/yyyy") & "#"




Raymond [mvp]
Le #5007731
VBA ne connait que le format US, alors comme nous sommes dociles et
compréhensifs si on veut utiliser # il faut utiliser le format US.
je n'ai pas testé la totalité de la procédure mais si on utilise des formats
date (comme je pensais dans mon 1er post) pour les variables il n'y a pas
besoin d'utiliser le format US. à confirmer tout ça.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"JC" news:
Salut,

Pourquoi a t on ce format US ?
N'y a t il pas moyen de tout avoir au format jj/mm/aa ?


Pierre
Le #5007501
Merci à vous deux pour vos bonnes réponses
qui m'ont permis de régler ce blème !
A+
Publicité
Poster une réponse
Anonyme