用VBA从SQL Server中提取数据到Excel中
分享一段代码:
上个星期询问各方是否有以编程的方法, 将SQL Server的数据提取到Excel中.
但均未有满意答复. 这也属于高手不屑于去做, 一般人又不懂的一个东西.
最后自力更生艰苦奋斗终于在长篇大论的帮助文档中找到一段代码, 改成我需要的样子. 现列示如下, 以免有其他人也和我有一样的需要, 而苦于无法实现.
Sub cc()
'意思是说, 定义一个叫CC的宏
Dim qt As QueryTable
' 定义一个查询表
sqlstring = "SELECT t_item.FName FROM AIS20060414142400.dbo.t_item t_item WHERE t_item.FNumber<'9000') ORDER BY t_item.FNumber"
'定义一句SQL的查询语言内容到sqlstring里去, 以备调用. 说的是, 从AIS20060414142400库的t_item表里面, 去找fnumber字段值小于9000时候的Fname字段出来, 按照fnumber排序.
connstring = "ODBC;DSN=SQL_Server;UID=sa;PWD=;Database=AIS20060414142400"
'定义连接的方式到connstring里去, 以备调用. 说的是, 采用ODBC方式连接, ODBC的名字是SQL_Server, 用户名是sa, 密码是空, 连接AIS20060414142400库.
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("B1"), sql:=sqlstring)
'选择当前工作表中的B1单元格做为起始的地方, 开始连接数据库, 按条件查询, 并返回数据.
.Refresh
'刷新
End With
'数据查询结束, 则循环结束
End Sub
'宏结束.
所以注意代码中的: DSN=SQL_Server 这个SQL_Server是自己定义的ODBC的名字.
定义ODBC 在你的计算机的 开始-->设置-->控制面板-->管理工具-->数据源(ODBC) 那里定义.
添加ODBC,
选择驱动程序是: SQL Server, 点完成,
定义这个ODBC的名称, 描述. 选择服务器(可以写服务器名字, 或者IP号都行),
下一步, 看当时是怎么安的SQL Server, 以及登录ID和密码是什么 填在这页上. (如果实在不知道, 选择使用用户输入登录ID和密码的SQL验证, 登录ID写 sa, 密码空着. 很多人安装SQL Server的时候懒得设密码的. 如果不是就问安装SQL的人.)
下一步, 更改默认数据库,
下一步完成, 测试数据源,
显示测试成功就可以了用了.