Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает таблицу запросов.
Синтаксис
expression. Add (Connection, Destination, Sql)
выражение Переменная, представляющая объект QueryTables .
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| Connection | Обязательный | Variant | Источник данных для таблицы запросов. Допустимые значения:
|
| Destination | Обязательный | Range | Ячейка в левом верхнем углу диапазона назначения таблицы запросов (диапазон, в котором будет размещена результирующая таблица запроса). Целевой диапазон должен находиться на листе, который содержит объект QueryTables, заданный выражением. |
| Sql | Необязательный | Variant | Строка SQL-запроса, выполняемая в источнике данных ODBC. Этот аргумент необязателен, если используется источник данных ODBC (если вы не укажете его здесь, его следует задать с помощью свойства Sql таблицы запросов перед обновлением таблицы). Этот аргумент нельзя использовать, если в качестве источника данных указан объект QueryTable , текстовый файл или объект ADO или DAO Recordset . |
Возвращаемое значение
Объект QueryTable , представляющий новую таблицу запросов.
Замечания
Запрос, созданный этим методом, не выполняется до вызова метода Refresh .
Пример
В этом примере создается таблица запросов на основе набора записей ADO. В этом примере сохраняются существующие параметры сортировки и фильтрации столбцов, а также сведения о макете для обратной совместимости.
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
Этот пример импортирует текстовый файл фиксированной ширины в новую таблицу запросов. Первый столбец в текстовом файле имеет пять символов в ширину и импортируется как текст. Второй столбец имеет четыре символа в ширину и пропускается. Оставшаяся часть текстового файла импортируется в третий столбец и имеет к нему применен общий формат.
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
В этом примере создается новая таблица запросов на активном листе.
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
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.