Format de date pour dialoguer Excel->Access
Bonjour,
J'ai un soucis que je n'arrive pas a résoudre. Je comprends pourquoi ca bloque mais je n'arrive pas a faire la modification adéquate.
Merci par avance de votre aide.
Alors, mon problème se pose sur une requete vba qui va chercher a remonter les bonnes lignes d'une table dans access nommé TgrilleC, en filtrant par une date sur un champs dateRdv qui est une date au type francais ( jj/mm/aaaa).
il doit remonter les lignes de cette table pour les champs qui ont dateRdv = datecom (datecom est une variable qui prends la valeur d'une cellule dont l'utilisateur choisie la date qu'il souhaite. Tout les dates sont au format francais)
Voici la requete dans mon code actuellement :
il fonctionne très bien pour les dates ou les nombre qui indique les jours est supérieur à 12.
(je suppose donc que c est un soucis de format de date (anglais vs francais) mais je bloque depuis plusieurs jours
requete = "SELECT DISTINCT TgrilleC.dateRdv, TgrilleC.enveloppe, TgrilleC.classe, TgrilleC.nom FROM TgrilleC " & _
"where TgrilleC.enveloppe = 'oui' AND TgrilleC.dateRdv = format (#" & datecom & "#,'dd/mm/yyyy') ;"
RS1.Open requete
k = 8
'--- dérouler le recordset
While Not (RS1.EOF)
Sheets(feuilleactive).Cells(1 + k, 10) = RS1.Fields("classe")
Sheets(feuilleactive).Cells(1 + k, 11) = RS1.Fields("nom")
Sheets(feuilleactive).Cells(1 + k, 9) = RS1.Fields("dateRdv")
Sheets(feuilleactive).Cells(1 + k, 27) = RS1.Fields("nom")
Sheets(feuilleactive).Cells(1 + k, 27) = RS1.Fields("enveloppe")
RS1.MoveNext
k = k + 1
Wend
RS1.Closej'ai essayé ce que j'ai trouvé sur le sujet sans reussite, ci dessous quelques tentatives échouées :
1)
Format (#" & Day([datecom]) & "/" & Month([datecom]) & "/& Year ([datecom])&)
2)
TransDate = "#" & DatePart("m", DateTr) & "/" & DatePart("d", DateTr) & "/" & DatePart("yyyy", DateTr) & "#"
3)
AND TgrilleC.dateRdv > CDATE('" & datecom & "');" (interprete la valeur en parametre en date)
...je ne peux fournir un fichier car c'est sur une requete entre excel et access, mais je peux apporter des précisions si je ne suis pas très clair
bonne journée
alfidx
Bonjour,
Est-ce que tu reçois un n° de série ?
Essaie dat1=Cdate(ta_date)
Une chaine ?
Le plus sûr est de découper la date reçue avec left(), mid() et right() ou split() et de la refabriquer avec
dat1= DateSerial(aaaa, mm, jj)
Tu devrais écrire tes résultats dans une variable tableau et tout coller d'un coup. Tu iras 100 fois plus vite.
eric
PS : pas de doublons stp
Bonjour eriic, merci de ta réponse.
J'ai essayé mais ca ne marche pas.
qu entends tu par :
Est-ce que tu reçois un n° de série ?
Je ne vois pas comment je peux découper la date recu....
datecom = Sheets(feuilleactive).Range("A1")
' jai essayé ces deux lignes dessous une ligne active a la fois mais ca ne marche pas
'datecom = DateSerial(aaaa, mm, jj) ' cela ne marche pas
'datecom = CDate(datecom) ' cela ne marche pas
requete = "SELECT DISTINCT TgrilleCOPCVM.dateC,TgrilleCOPCVM.enveloppe,TgrilleCOPCVM.classe, TgrilleCOPCVM.nom FROM TgrilleC " & _
"where TgrilleC.enveloppe = 'oui' AND TgrilleCOPCVM.dateC = format (#" & datecom & "#,'dd/mm/yyyy') ;"
RS1.Open requeteca ne marche juste pas si le nombre de jour du mois est inférieur ou egal a 12
si datecom = 05/05/2015 ne marche pas
si datecom= 13/05/2015 ca marche bien
C'est bon j'ai trouvé !
il fallait invertir DD/MM/YYYY en MM/DD/YYYY
access parle anglais