Querytables.add sur SQL server, problème de variables SQL
Bonjour,
je rencontre actuellement un gros problème de communication vba/SQL server.
J'utilise querytables.add pour soumettre mes requêtes, ce qui ne pose jamais de soucis, SAUF dans le cas où la requête fait intervenir des variables SQL. Dans ce cas, une erreur est rejetée par vba, alors que la même requête exécutée directement en SQL ne pose pas de soucis.
Exemple tout bête :
DECLARE @liste varchar(3);set @liste='500';select @liste;
Pas de problème SQL (bon, peut-être pas la syntaxe la plus professionnelle, ça je ne sais pas), mais impossible à exécuter en vba avec le bloc suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
requete_SQL="DECLARE @liste varchar(3);set @liste='500';select @liste;"
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER=SQL Server;SERVER=XXX;UID=XXX;PWD=XXX;APP=Microsoft Office 2003;WSID=ITEM-60109" _
, Destination:=Range(rang))
.CommandText = requete_SQL
.Name = "Lancer la requête à partir de XXX"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
End With |
bloc qui ne m'a jamais causé de problème sur de simples Select.
L'utilisation de SQL server via vba autorise-t-elle la création de variables SQL?
Si oui, où est mon erreur? :massacre:
Merci !
ps : si le sujet a plus sa place dans le forum SQL server, merci de le déplacer !