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

Blème de date putot zarbi !

7 réponses
Avatar
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

7 réponses

Avatar
Raymond [mvp]
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" <p() a écrit dans le message de
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




Avatar
Pierre
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
Avatar
www.eztree-msdn.com \( Laurent Jordi \)
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" <p() a écrit dans le message de
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




Avatar
Raymond [mvp]
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 )" a écrit dans le
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")


Avatar
JC
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") & "#"




Avatar
Raymond [mvp]
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" a écrit dans le message de
news:
Salut,

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


Avatar
Pierre
Merci à vous deux pour vos bonnes réponses
qui m'ont permis de régler ce blème !
A+