Bonjour,

J'ai un formulaire qui contient des dates au format abrégé FR dd/mm/aaa.
Une requete modele
une requete dynamique finale contenant les dates extraites du formulaire.

Le code vba ci-dessous modifie la requête modèle de manière dynamique. Elle récupère deux dates contenus dans des champs de formulaires au format de date FR abrégée dd/mm/aaaa et modifie dans la requête modèle les critères correspondants.

Dans les msgbox qui parsement mon code, à chaque fois le format de date FR est correct mais ensuite ce format est remplacé par le format US dans ma requête finale lorsque je l'ouvre et que je regarde les critères en mode création. je ne vois pas trop pourquoi puisque lorsque j'ouvre une msgbox avec le contenu de ma requête SQL et bien le format de date est correcte (dd/mm/aaaa). y a t'il un moyen simple de palier au problème ou je suis obligé de partir sur des dates US dans mon formulaire de départ ? Et dans ce cas comment préciser dans mon formulaire que le champs doit être au format US.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Public Sub ModificationReq(ReqModele As String, CritereAModife As String, ResultatDocAchat As String, PlagePeriode1 As Date, PlagePeriode2 As Date)
 
Dim Db As DAO.Database
Dim QryModele As DAO.QueryDef
Dim strSQLModele As String
 
'Nom de la requete finale
Dim NomReqFinal As String
'MsgBox "NomReqFinal =#" & NomReqFinal & "# Avant modif 1"
NomReqFinal = Replace(ReqModele, "Modele", "Dynamique")
'MsgBox "NomReqFinal =#" & NomReqFinal & " après modif 1"
NomReqFinal = Replace(NomReqFinal, "Modèle", "Dynamique")
'MsgBox "NomReqFinal =#" & NomReqFinal & "  est la nouvelle requete modifié de :" & ReqModele
 
'Initialisation des variables
Set Db = CurrentDb
Set QryModele = Db.QueryDefs(ReqModele)
strSQLModele = QryModele.SQL
 
'MsgBox PlagePeriode1 & "    " & PlagePeriode2
'Modification de la requete source
strSQLModele = Replace(strSQLModele, CritereAModife, ResultatDocAchat)
strSQLModele = Replace(strSQLModele, "[#Periodevente1#]", "#" & PlagePeriode1 & "#")
strSQLModele = Replace(strSQLModele, "[#Periodevente2#]", "#" & PlagePeriode2 & "#")
MsgBox "1    " & strSQLModele
 
If TesteExistenceReqAchat(NomReqFinal) Then
  'alors modifier le code de la requête
  Db.QueryDefs(NomReqFinal).SQL = strSQLModele
 
'contenue de ma requete sql affiché dans la msgbox
  MsgBox Db.QueryDefs(NomReqFinal).SQL
  'MsgBox ("Requete modifie" & " NomReqFinal:" & NomReqFinal & " Existe")
 
'Sinon
Else
  'Créer la nouvelle requête
  Db.CreateQueryDef NomReqFinal, strSQLModele
  MsgBox Db.QueryDefs(NomReqFinal).SQL
  'MsgBox ("Requete crée") & " NomReqFinal:" & NomReqFinal & " n'existe pas"
End If
 
Set Db = Nothing
Set QryModele = Nothing
 
End Sub
Merci d'avance à la communauté