Excel加载项用于显示(我的)SQL数据库中的数据

时间:2008-12-15 20:43:37

标签: sql mysql excel

有一种简单的方法可以将数据从mysql / odbc数据源导入excel电子表格吗?

用户应该能够从下拉列表中选择一些值(例如日期范围,分支名称等),并且下拉列表中的值应该用于填充(准备好的)SQL语句。结果应显示在Excel文件中。

理想情况下会有一个“保存快照”菜单项,它将动态excel文件(保存sql语句)转换为静态excel文件,从而减少内部(例如sql)对外部资源的暴露。

由于

4 个答案:

答案 0 :(得分:2)

您可以下载ODBC driver for MySQL,创建数据源,并使用MS Query创建可以通过“数据”菜单添加到Excel的自定义SQL查询。

答案 1 :(得分:0)

答案 2 :(得分:0)

以下是一个例子:

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

答案 3 :(得分:0)

此方法应该比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