Excel 2013 получает sql данные сервера, используя запрос - PullRequest
0 голосов
/ 30 марта 2020

Из Excel Office 365 (я полагаю, в Excel 2016) я читаю данные из базы данных сервера SQL и в мастере могу ввести прямой оператор SQL для фильтрации данных. В Excel 2013, похоже, нет средств сделать это с помощью мастера, и он просто возвращает все данные без средств фильтрации.

Есть ли способ сделать это? Просто процесс в порядке, но в конечном итоге мне нужно кодировать все это в VBA.

Это код, который я использую в Excel 365. Спасибо.

Dim wb As Workbook
Set wb = Workbooks.Add
dim sql as String

sql="SELECT top 10 * from table WHERE fieldx=25" 'or whatever
wb.Activate
Application.DisplayAlerts = False

wb.Queries.Add name:="Query1", Formula:=sql
With wb.Worksheets(1)
    .Activate
    With .ListObjects.Add(SourceType:=0, Source:= _
    "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Query1;Extended Properties=""""" _
    , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Query1]")
        .ListObject.DisplayName = "Query1"
        .Refresh BackgroundQuery:=False
    End With
End With
Set ExportDataTable = wb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...