Méthode QueryTables.Add (Excel)

Crée une table de requêtes.

Syntaxe

expression. Ajouter (Connexion, Destination, Sql)

Expression Variable qui représente un objet QueryTables .

Parameters

Nom Requis/Facultatif Type de données Description
Connection Requis Variant 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 a la forme ODBC;<connection string>.
  • Objet QueryTable à partir duquel les informations de requête sont copiées initialement, incluant la chaîne de connexion et le texte SQL, mais pas la place Destination. La spécification de l'objet QueryTable a pour effet que l'argument Sql est ignoré.
  • Objet Recordset ADO ou DAO. Les données sont lues à partir du recordset ADO ou DAO. Microsoft Excel conserve le recordset jusqu'à ce que la table de requêtes soit supprimée ou la connexion modifiée. La table de requêtes résultante ne peut pas être modifiée.
  • Une requête web. Chaîne au format URL;<url>URL; est obligatoire mais non localisé et où le reste de la chaîne est utilisé pour l’URL de la requête web.
  • Recherche de données. Chaîne au format FINDER;<data finder file path>FINDER; est obligatoire mais non localisé. Le reste de la chaîne est le chemin d’accès et le nom de fichier d’un fichier Recherche de données (*.dqy ou *.iqy). Le fichier est lu lors de l’exécution de la méthode Add ; les appels suivants à la propriété Connection de la table de requête retournent des chaînes commençant par ODBC; ou URL; le cas échéant.
  • Fichier texte. Chaîne au format TEXT;<text file path and name>TEXT; est obligatoire mais non localisé.
Destination Obligatoire 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.
Sql Facultatif Variant 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 le spécifiez pas ici, vous devez le 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.

Valeur renvoyée

Objet QueryTable qui représente la nouvelle table de requête.

Remarques

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.

Exemple

Cet exemple crée une table de requêtes basée sur un recordset ADO. L'exemple conserve les paramètres de tri et de filtrage de colonne, ainsi que les informations sur la disposition pour assurer la compatibilité descendante.

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

Cet exemple importe un fichier texte de largeur fixe dans une nouvelle table de requêtes. La première colonne du fichier texte, d'une largeur de 5 caractères, est importée comme texte. La seconde colonne du fichier texte a une largeur de quatre caractères et est ignorée. Le reste du fichier texte est importé dans la troisième colonne au format Général.

Set shFirstQtr = Workbooks(1).Worksheets(1) 
Set qtQtrResults = shFirstQtr.QueryTables.Add( _ 
    Connection := "TEXT;C:\My Documents\19980331.txt", 
    Destination := shFirstQtr.Cells(1,1)) 
With qtQtrResults 
    .TextFileParsingType = xlFixedWidth 
    .TextFileFixedColumnWidths := Array(5,4) 
    .TextFileColumnDataTypes := _ 
        Array(xlTextFormat, xlSkipColumn, xlGeneralFormat) 
    .Refresh 
End With

Cet exemple crée une table de requêtes sur la feuille de calcul active.

sqlstring = "select 96Sales.totals from 96Sales where profit < 5" 
connstring = _ 
    "ODBC;DSN=96SalesData;UID=Rep21;PWD=NUyHwYQI;Database=96Sales" 
With ActiveSheet.QueryTables.Add(Connection:=connstring, _ 
        Destination:=Range("B1"), Sql:=sqlstring) 
    .Refresh 
End With

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.