Bonjour à tous,

je suis sur un probleme ou je bloque depuis 2heures

J'ai un fichier excel avec mon VBA qui interroge une base access.

Le problème c'est que la requête SQL comporte des accents dans les noms des tables et cela bloque le VBA ca fonctionne pas. (si je réalise une requête avec une autre table sans accents pas de problème).


Le problème c'est au niveau VBA, la requête envoyé est mal interprété, le retour que j'ai impossible de trouvé la table [rqt_Attendu Recu préparatoire Externe] au lieu de [rqt_Attendu Recu préparatoire Externe].

Par contre si dans mon fichier excel (pour faire un test) je créé une connexion a ce fichier access et que je lance la requête dedans, cela s’exécute correctement et le é est bien interprété.

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
 
Dim cnBat As ADODB.Connection
Set cnBat = New ADODB.Connection
 '--MsgBox (valcel)
Dim strConn As String
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;"
strConn = strConn & "Data Source=K:\oooo\oooooooooooo.mdb;Persist Security Info=False;"
cnBat.Open strConn
 
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
 Worksheets("Informations").Range("A13:R3000").ClearContents
 
'------------------
Dim rsBat As ADODB.Recordset
Set rsBat = New ADODB.Recordset
 
With rsBat
     .ActiveConnection = cnBat
 
 
                 'MsgBox ("Societe:" & rsBat("emp") & "Point de vente" & rsBat("puntoventa"))
 
                Set f = fso.OpenTextFile(chemin & "\sql\requete_oooooooooo.sql", ForReading)
                'une_variable = Replace(f.ReadAll, "societe", id_societe)
                une_variable = Replace(f.ReadAll, "debutdatereglement", debutdatereglement)
                 une_variable = Replace(une_variable, "findatereglement", findatereglement)
                'une_variable = Replace(une_variable, "datesupreglement", datesupreglement)
                f.Close
    Set ft = fso.OpenTextFile(chemin & "\ecr.txt", ForWriting, True)
   ft.write (une_variable)
   ft.Close
 
 
 
           ' MsgBox (une_variable)
      .Open une_variable
A quelle niveau du VBA je dois préciser le format de la variable? Quelle valeur indiqué ? je bloque


merci d'avance pour vos conseils

guigui69