есть ли простой способ импортировать данные из источника данных mysql / odbc в электронную таблицу Excel?
Пользователь должен иметь возможность выбирать некоторые значения из раскрывающихся списков (например, диапазон дат, имя ветки и т. д.), А значения из раскрывающегося списка следует использовать для заполнения (подготовленных) операторов SQL. Результаты должны быть отображены в файле Excel.
В идеале должен быть пункт меню «сохранить снимок», который преобразует динамический файл excel (с сохраненными операторами sql) в статический файл excel, тем самым уменьшая доступ внутренних компонентов (например, sql) к внешним ресурсам.
Спасибо


Вы можете загрузить Драйвер ODBC для MySQL, создать источник данных и использовать MS Query для создания пользовательского SQL-запроса, который можно добавить в Excel через меню «Данные».
Вот пример:
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
strCon = "Driver = {MySQL ODBC 3.51 Driver};Server=localhost;Database=MyDB;" _
& "User=UName;Password=PWord;Option=3;"
cn.Open strCon
strSQL = "SELECT * FROM Members"
rs.Open strSQL, cn
Worksheets(3).Cells(2, 1).CopyFromRecordset rs
Этот метод должен быть быстрее, чем CopyFromRecordset. Конечно, вы должны убедиться, что у вас установлен драйвер MySQL ODBC 5.1 ...
With AWorksheet.QueryTables.Add( _
Connection: = "ODBC;Driver=MySQL ODBC 5.1 Driver;Port=3306;Server=mysqlservername;Database=snort;User=username;Password=password;Option=3;"
Destination:=AWorksheet.Range(AWorksheet.Cells(1, 1), AWorksheet.Cells(1, 15)) _
)
.CommandText = "SELECT Something FROM Somewhere"
.Name = "Name"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
.Delete
End With