将数据从 Microsoft SQL Server 导入 Microsoft Excel
![]() |
概要 | ||||
![]() |
要求 | ||||
![]() |
引用 ADO 对象库 | ||||
![]() |
创建连接 | ||||
![]() |
提取数据 | ||||
![]() |
验证能否正常工作 | ||||
![]() |
疑难解答 | ||||
![]() |
参考 | ||||
![]() |
这篇文章中的信息适用于: |
概要
本文逐步介绍如何将数据从 Microsoft SQL Server 附带的示例数据库 Pubs 中导入 Microsoft Excel。
ActiveX 数据对象 (ADO) 可用来访问任意类型的数据源。它是具有少数几个对象的平面对象模型。ADO 对象模型中的主要对象有:
Microsoft 建议您掌握以下几个方面的知识:
ActiveX 数据对象 (ADO) 可用来访问任意类型的数据源。它是具有少数几个对象的平面对象模型。ADO 对象模型中的主要对象有:
对象 说明 -------------------------------------------------------------------------- Connection 指示到数据源的连接。 Recordset 指示所提取的数据。 Command 指示需要执行的存储过程或 SQL 语句。尽管使用 ADO 返回记录集有很多种方法,但本文主要介绍 Connection 和 Recordset 对象。
要求
必须具有运行 Microsoft SQL Server 且包含 Pubs 数据库的本地服务器。Microsoft 建议您掌握以下几个方面的知识:
• | 在 Office 程序中创建 Visual Basic for Applications 过程。 |
• | 使用 Object 变量。 |
• | 使用 Excel 对象。 |
• | 关系数据库管理系统 (RDBMS) 概念。 |
• | 结构化查询语言 (SQL) SELECT 语句 |
引用 ADO 对象库
1. | 启动 Excel。打开一个新工作簿,然后将其保存为 SQLExtract.xls。 |
2. | 启动 Visual Basic 编辑器并选择您的 VBA 项目。 |
3. | 在工具菜单上,单击引用。 |
4. | 单击以选中最新版本的 Microsoft ActiveX 数据对象库的复选框。 |
创建连接
1. | 在项目中插入一个新模块。 |
2. | 创建一个新的名为 DataExtract 的子过程。 |
3. | 键入或粘贴以下代码:
|
提取数据
键入或粘贴以下代码以提取您的记录:
' Create a recordset object.
Dim rsPubs As ADODB.Recordset
Set rsPubs = New ADODB.Recordset
With rsPubs
' Assign the Connection object.
.ActiveConnection = cnPubs
' Extract the required records.
.Open "SELECT * FROM Authors"
' Copy the records into cell A1 on Sheet1.
Sheet1.Range("A1").CopyFromRecordset rsPubs
' Tidy up
.Close
End With
cnPubs.Close
Set rsPubs = Nothing
Set cnPubs = Nothing
验证能否正常工作
1. | 运行上述代码。 |
2. | 切换到 Excel 并在工作簿的 Sheet1 中查看数据。 |