Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 11h42   #1
Invité de passage
 
Homme
Webmaster
Inscription : décembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : décembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Erreur d'éxécution 1004 et oQt.Refresh BackgroundQuery

Bonjour,
Je viens vers vous car novice en VBA/Excel et totalement perdu sur un code qui n'est pas de moi et qui jusque là fonctionnait pour plusieurs requêtes SQL complexes.

Le principe est le suivant :
- Création d'un fichier SQL avec la requête souhaitée qui amène un certain nombre de résultats à partir d'un logiciel/d'une interface utilisée en local par une société.
- Avec la macro, exécution de la requête puis enregistrement des résultats dans un fichier texte créé.
- Le fichier texte sera traité pour remplir automatiquement une autre base de données en ligne pour un site internet.

Voici mon code SQL très très simple dans un fichier test.sql, qui retourne bien de bons résultats sur mon interface/base de données :

Code :
1
2
3
SELECT [No_] AS Code,[Booleen] as Booleen
FROM [BaseDeDonnees_Table] 
WHERE ([Condition1]=2) AND ([Condition2]=0)
Et voici ma macro :

Code :
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
Sub export()
'
' Extraction des tables de la base de donnees
 
Dim intFic As Integer
Dim strLigne As String
 
chemin = "D:\Dossier_de_mise_a_jour\"
 
Sheets("Feuil1").Select
Range("A1").CurrentRegion.Delete
 
tables = Array("test")
conn = "ODBC;DSN=SQL Native Client vers base de donnees;UID=%user%;APP=Microsoft Office 2003;Trusted Connection=Yes"
 
 
For t = 0 To UBound(nav_tables)
 
nom = tables(t)
 
'lecture du fichier et creation de la requete sql
 
contenu = ""
intFic = FreeFile
Open chemin & nom & ".sql" For Input As intFic
While Not EOF(intFic)
Line Input #intFic, strLigne
contenu = contenu & strLigne
Wend
Close intFic
SQLstring = contenu
 
Set oQt = ActiveSheet.QueryTables.Add(Connection:=conn, Destination:=Range("A1"), Sql:=SQLstring)
oQt.Refresh BackgroundQuery:=False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=chemin & nom & ".txt", FileFormat:=xlText, CreateBackup:=False
ActiveSheet.Range("A1").CurrentRegion.Delete
 
Next t
 
 
End Sub
L'erreur indiqué est :
Citation:
Erreur d'éxécution '1004': Erreur de syntaxe SQL.

au niveau de :
oQt.Refresh BackgroundQuery:=False

Merci d'avance, j'espère ne pas m'être trompé de section et avoir été clair...
matiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h08.


 
 
 
 
Partenaires

Hébergement Web