Classe QueryTables (Excel VBA)
Collection d'objets QueryTable . Pour utiliser une variable de classe QueryTables, elle doit d'abord être instanciée, par exemple
Dim qts as QueryTables
Set qts = ActiveSheet.QueryTables
For Each
Voici un exemple de traitement des éléments QueryTables dans une collection
Dim qrytbl As QueryTable
For Each qrytbl In Application.QueryTables
Next qrytbl
Add
Crée une table de requêtes.
Une requête créée par cette méthode n’est pas exécutée tant que la méthode Refresh n’est pas appelée.
Add (Connection, Destination, Sql)
Dim cnnConnect As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Set cnnConnect = New ADODB.Connection
cnnConnect.Open "Provider=SQLOLEDB;" & _
"Data Source=srvdata;" & _
"User ID=testac;Password=4me2no;"
Set rstRecordset = New ADODB.Recordset
rstRecordset.Open _
Source:="Select Name, Quantity, Price From Products", _
ActiveConnection:=cnnConnect, _
CursorType:=adOpenDynamic, _
LockType:=adLockReadOnly, _
Options:=adCmdText
With ActiveSheet.QueryTables.Add( _
Connection:=rstRecordset, _
Destination:=Range("A1"))
.Name = "Contact List"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Arguments
Les arguments nommés :
Connection
(String) - Source de données pour la table de requêtes. Il peut s'agir d'un des éléments suivants : Chaîne contenant une chaîne de connexion OLE DB ou ODBC. La chaîne de connexion ODBC se présente ODBC;
Destination (Range) - Cellule dans l'angle supérieur gauche de la plage de destination de la table de requêtes (plage dans laquelle la table de requêtes résultante sera placée). La table de destination doit figurer sur la feuille de calcul contenant l'objet QueryTables spécifié par l'expression.
Optional arguments
Les arguments suivants sont facultatifs
Sql (QueryTable) - Chaîne de requête SQL à exécuter sur la source de données ODBC. Cet argument est facultatif lorsque vous utilisez une source de données ODBC (si vous ne spécifiez pas cette valeur ici, vous devez la définir à l’aide de la propriété SQL de la table de requête avant l’actualisation de la table). Vous ne pouvez pas utiliser cet argument si un objet QueryTable, un fichier texte, ou un objet Recordset ADO ou DAO est spécifié comme source de données.
Count
Cette propriété renvoie une valeur de type Long qui représente le nombre d’objets de la collection.
Dim lngCount As Long
lngCount = ActiveSheet.QueryTables.Count
Item
Cette méthode renvoie un seul objet d'une collection.
Item (Index)
Index: Nom ou numéro d'index de l'objet.
Dim qrytbl As QueryTable
Set qrytbl = ActiveSheet.QueryTables(Index:=1)