Bonjour à tous,
J'ai découvert depuis peu de temps qu'il était possible de générer des requêtes SQL directement via Excel, via MS Query plus précisément.
Je sais que ce n'est pas aussi puissant qu'Acces ou que MySql qui sont de 'vraies' BDD mais je n'ai que cela sous la main.
Mon problème est certainement très simple, je cherche simplement à récupérer le résultat de ma requête dans une variable et non la renvoyer directement sur Excel.
Je n'utilise que le 'Count' donc ce résultat n'est qu'une valeur.
Ex de code que je dois modifier (code provenant du mode enregistrement d'Excel)
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DBQ=C:\Documents and Settings\jbw\Bureau\sql test\Classeur1.xls;DefaultDir=C:\Documents and Settings\jbw\Bureau\sql test;Driver" _
), Array( _
"={Driver do Microsoft Excel(*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTr" _
), Array("ansactions=0;Threads=3;UID=admin;UserCommitSync=Yes;")), Destination _
:=Range("G8"))
.CommandText = Array( _
"SELECT Count(AAA1.ColA)" & Chr(13) & "" & Chr(10) & "FROM `C:\Documents and Settings\jbw\Bureau\sql test\Classeur1`.AAA1 AAA1, `C:\Documents and Settings\jbw\Bureau\sql test\Classeur1`.ZZZ1 ZZZ1" & Chr(13) & "" & Chr(10) & "WHERE AAA1.ColA = ZZZ1.ColB" _
)
.Name = "Lancer la requête à partir de aaaaaaaaaaaaaaaaaaaa"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With