Из 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