Надстройка Excel для отображения данных из (My) базы данных SQL - PullRequest
1 голос
/ 15 декабря 2008

Есть ли простой способ импорта данных из источника данных mysql / odbc в электронную таблицу Excel?

Пользователь должен иметь возможность выбирать некоторые значения из раскрывающихся списков (например, диапазон дат, название ветви и т. Д.), А значения из раскрывающегося списка следует использовать для заполнения (подготовленных) операторов SQL. Результаты должны отображаться в файле Excel.

В идеале должен быть пункт меню «сохранить снимок», который преобразует динамический файл Excel (с сохраненными инструкциями SQL) в статический файл Excel, таким образом уменьшая подверженность внутренних ресурсов (например, SQL) внешним ресурсам.

Спасибо

Ответы [ 4 ]

2 голосов
/ 15 декабря 2008

Вы можете загрузить драйвер ODBC для MySQL , создать источник данных и использовать MS Query , чтобы создать собственный запрос SQL, который можно добавить в Excel через меню «Данные».

0 голосов
/ 06 июля 2010

Этот метод должен быть быстрее, чем 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
0 голосов
/ 15 декабря 2008

Вот пример:

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
0 голосов
/ 15 декабря 2008
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...