有一种简单的方法可以将数据从mysql / odbc数据源导入excel电子表格吗?
用户应该能够从下拉列表中选择一些值(例如日期范围,分支名称等),并且下拉列表中的值应该用于填充(准备好的)SQL语句。结果应显示在Excel文件中。
理想情况下会有一个“保存快照”菜单项,它将动态excel文件(保存sql语句)转换为静态excel文件,从而减少内部(例如sql)对外部资源的暴露。
由于
答案 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