- Dim Conn As Object, Rst As Object
复制代码- Dim strConn As String, strSQL As String
复制代码- Dim i As Integer, PathStr As String
复制代码- Set Conn = CreateObject("ADODB.Connection")
复制代码- Set Rst = CreateObject("ADODB.Recordset")
复制代码- PathStr = ThisWorkbook.FullName '设置工作簿的完整路径和名称
复制代码- Select Case Application.Version * 1 '设置连接字符串,根据版本创建连接
复制代码- strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
复制代码- '***************在这一句写入SQL语句
复制代码- Conn.Open strConn '打开数据库链接
复制代码- strSQL = "select * from [sheet1$]"
复制代码- Set Rst = Conn.Execute(strSQL) '执行查询,并将结果输出到记录集对象
复制代码- For i = 0 To Rst.Fields.Count - 1 '填写标题
复制代码- '***************在这一句更改标题需要写入的位置
复制代码- .Cells(1, i + 1) = Rst.Fields(i).Name
复制代码- '***************在这一句更改数据需要写入的位置
复制代码- .Range("A2").CopyFromRecordset Rst
复制代码- .Cells.EntireColumn.AutoFit '自动调整列宽
复制代码- .Cells.EntireColumn.AutoFit '自动调整列宽
复制代码 [code][/code]实际使用中需要更改的地方只有三处,分别为SQL语句,标题输出位置,数据输出位置,已用****************标出,十分适合大批量数据的处理。
需要注意的是这里的SQL语句没有case when语句,只能使用IIF代替。
原文章:
http://club.excelhome.net/thread-1061487-1-1.html
从零开始学习SQL |
|