方法一:使用Microsoft Query(不推荐)
1、打开被当成数据库的Excel,切换到“公式”选项卡,将被当成数据库的区域定义成名称,如下:
2、关闭数据源Excel,打开一个新的Excel,切换到“数据”选项卡,点击“自其他来源”中的“来自Microsoft Query”,如下图:
3、选择ExcelFiles*,然后确定,如下:
4、选中数据源Excel,如下:
5、选择要查询的列,如下:
6、按提示操作下一步,最后在设计界面,点击SQL就可以打开SQL窗口输入SQL语句,如下:
7、选择“文件->将数据返回Microsoft Excel”菜单,如下:
8、在弹出的“导入数据”对话框中,选择表中位置即可导入数据,如下:
9、若想修改SQL语句,可以点击属性按钮,切换到定义选项卡,可以在命令文本中修改SQL语句,如下:
提示:此窗口也可以保存设置的连接文件。
方法二:OLEDB法(较好)
1、切换到“数据”选项卡,点击现有连接按钮,如下:
2、在现有连接对话框中选择“浏览更多”,如下:
3、浏览被当成数据源的Excel,弹出选择表格对话框,如下:
4、选择要被当成数据源的表,确定,弹出导入数据对话框,如下:
5、点击属性按钮,切换到定义选项卡,在命令文本中输入SQL语句,如下:
6、确定,在导入数据对话框中进行操作就可以将SQL语句的结果保存到当前Excel了。
方法三:使用vba(最便捷)
Sub DoSql_Execute()
‘当前Excel被当成数据库进行操作
‘当前Sheet会被清空,第一行变为标题,第二行开始为数据
‘修改Mypath就会引用其他Excel为数据源,修改Sql就可以实现自己的SQL查询
Dim cnn As Object, rst As Object
Dim Mypath As String, Str_cnn As String, Sql As String
Dim i As Long
Set cnn = CreateObject(“adodb.connection”)
Mypath = ThisWorkbook.FullName
If Application.Version < 12 Then
Str_cnn = “Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=” & Mypath
Else
Str_cnn = “Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=” & Mypath
End If
cnn.Open Str_cnn
Sql = “SELECT * FROM [学生表$]”‘//请在此处写入你的SQL代码
Set rst = cnn.Execute(Sql)
Cells.ClearContents
For i = 0 To rst.Fields.Count – 1
Cells(1, i + 1) = rst.Fields(i).Name
Next
Range(“a2”).CopyFromRecordset rst
cnn.Close
Set cnn = Nothing
End Sub
欢迎交流分享,联系qq:329876601