Conversion de date (français/anglais)

therafou

XLDnaute Junior
Bonjour,

voilà je viens de me rendre de compte d'un problème sur une application que j'avais developper sous excel avec un base Acces.

J'explique l'application de manière à vous mettre dans le contexte. je saisie deux date (dd/mm/yyyy) dans deux cellules, qui forment une période.

Ces deux cellules sont bien au format date comme ci dessus. je récupère leur valeur pour compléter ma requete SQL.

Code:
Dim date_1, date_2 As Date

date_1 = Range("b4")
date_2 = Range("f4")

texte_SQL = "SELECT brut.date, brut.connexion_svi, brut.serv_op, brut.adandons_dissuades, brut.qlt_serv_pris30s, brut.qlt_serv_traite_op, brut.tps_attente_max, brut.appel_informati, brut.perdu, brut.nb_agent FROM brut where date BETWEEN #" & date_1 & "# and #" & date_2 & "# ORDER BY brut.date;"

Ma requete se forme bien et les dates, je place bien. J'ai un résultat en retour, mais qui n'est pas bon et chaque fois.
Exemple que je tape un interval de "12/01/06" à "10/09/07". Il va me retourner un interval du "01/12/06" au "09/10/07" ce qui n'a rien à voir au final sur le demande de départ.

je comprend donc par cette erreur que excel transforme mes dates au format anglais. Mais chose encore plus drôle pour une période du "29/11/06" au "23/08/07", il me retourne le bon résultat car il ne peut pas la transformer en date anglaise.

Au final excel transforme mes dates comme bon lui semble ce qui me donne un programme non fiable.

J'amerais savoir si vous avez déjà eu ce genre de problème et comment résoudre pour éviter d'avoir cette erreur. Je suis près à chercher avec des pistes de réflextion.


Pour information dans ma base Acces, le format des dates est bien en français dans mon champ date sur lequel je base ma requête.
Merci d'avance pour vos réponses et bonne soirée
 

fred65200

XLDnaute Impliqué
Re : Conversion de date (français/anglais)

bonjour

essaie avec
Code:
date_1 = CDate(Range("b4"))
date_2 = cdate(Range("f4"))
c'est peut être un problème de date sql, certains serveurs ne comprennent que les dates au format yyyymmdd.
une fonction de conversion trouvée sur le web pour ASP
Code:
Function ConvertDateSql(ladate)
   JJ = Day(ladate)
   MM = Month(ladate)
   AAAA = Year(ladate)
   If JJ < 10 Then JJ = "0" & JJ
   If MM < 10 Then MM = "0" & MM
   AAAA = "" & AAAA
   ConvertDateSql = AAAA & MM & JJ
End Function
Certain serveur sql acceptent mal les dates encadrées de dièses (#), tu peux essayer de les remplacer par des apostrophes (').
cordialement
 
Dernière édition:

therafou

XLDnaute Junior
Re : Conversion de date (français/anglais)

Code:
Function MakeUSDate(dDate As Variant)
  If Not IsDate(dDate) Then Exit Function
  MakeUSDate = "#" & Month(dDate) & "/" & Day(dDate) & "/" & Year(dDate) & "#"
End Function

Voilà la solution à mon problème, qui une transformation de la date en US et plus de problème

Source du code
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87