Bonjour,
Je travaille sur Excel 2007, il faut que j'exécute un script SQL à partir de Excel.
Mon code marche bien en cliquant sur un bouton en Excel je peux extraire des données d'une Base SQL Server avec des Macros en utilisant ODBC.
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 Public Function FileToSQL(strPath As String) As String Dim strRecord As String Dim SQLStatement As String Dim ScriptLine As String Dim StopOrResume As Integer Open strPath For Input As #1 Do While Not EOF(1) SQLStatement = "" Line Input #1, ScriptLine ScriptLine = Trim(ScriptLine) SQLStatement = SQLStatement & " " & ScriptLine Do While (Not EOF(1)) And (ScriptLine <> "") And (Right(SQLStatement, 1) <> ";") Line Input #1, ScriptLine ScriptLine = Trim(ScriptLine) SQLStatement = SQLStatement & " " & ScriptLine Loop SQLStatement = Trim(SQLStatement) FileToSQL = FileToSQL & SQLStatement Loop Close #1 End FunctionMon problème c'est quand j'ai des commentaires de type "-- Commentaire" ma requête ne s'exécute pas et j'ai un message d'erreur.
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 Sub Test_Emprunt() ' Déclarer l'objet QueryTable Dim qt As QueryTable ' Appel au script contenant la requête sqlstring1 = FileToSQL("c:\test.sql") ' Mettre en place la référence d'une connexion ODBC ' Vous pouvez laisser le nom et mot de passe vide pour l'authentification connstring1 = _ "ODBC;DSN=pubs;UID=;PWD=;Database=" 'La mise en uvre de la connexion, exécution de la requête, Et lajout des résultats de la feuille Data1 à partir de la cellule A3 With Sheets("Data1").QueryTables.Add(Connection:=connstring1, Destination:=Range("Data1!A3"), Sql:=sqlstring1) .Refresh End With End Sub
Avec les commentaire de type "/*Commentaire*/" ça marche bien sauf que dans la société ou j'effectue mon stage ils ont déjà des scripts où ils utilisent des commentaires de type "-- Comment".
J'ai essayé de trouver la solution mais je n'arrive pas.
Est ce que quelqu'un à une idée pour m'aider S.V.P
Merci d'avance
Partager