如何使用 DAO 的 Excel 中从 Access 中检索表

文章翻译 文章翻译
文章编号: 146406 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

在上面列出的 Microsoft Excel 版本中,可以使用 Visual Basic 应用程序中的数据访问对象 (DAO) 从 Microsoft Access 检索的表。

若要以便从 Microsoft Access 检索的表,您就可以使用 DAO 的示例在本文中介绍的宏,请使用与 Microsoft Office 专业版的 Windows 95、 版本 7.0 和 Microsoft Office 97 专业参加 Windows 的装运的罗斯文数据库。如果您选择了默认选项,当您安装了 Microsoft Office 专业版的 Windows 95,版本 7.0,该数据库位于:
   \MSOffice\Access\Samples\Northwind.mdb
				
安装 Microsoft Office 97 专业参加 Windows 时,您可以选择默认选项,如果数据库位于:
   \Program Files\Microsoft Office\Office\Samples\Northwind.mdb
				
罗斯文数据库位于您的计算机上的其他文件夹中,如果您需要编辑在运行它之前,下面提供的代码。

若要在宏中使用 DAO,必须引用在 Microsoft DAO 对象库,或者您可能会收到错误"用户定义类型未定义"。若要引用在 Microsoft Excel 版本 7.0 中的此库,激活模块工作表、 在工具菜单上单击引用并检查"Microsoft DAO 3.0 对象库"选项。若要引用在 Microsoft Excel 版本 97 此库,Visual Basic 编辑器中工具菜单上单击引用,并检查在"Microsoft DAO 3.5 对象库"中。

更多信息

Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证。这包括,但不限于对适销性或针对特定用途的适用性的暗示的担保。本文假定您熟悉演示了正在使用的编程语言以及用于创建和调试过程的工具。Microsoft 支持工程师可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程来满足您的具体要求。若要从 Microsoft Access 检索表,请按照下列步骤操作:

  1. 建立一个数据库对象。
  2. 建立一个 Recordset 对象。
  3. (如果需要),则检索该邮件头。
  4. 从表中检索数据。
检索数据后,您应关闭通过发出.Close 命令打开的所有对象。

以编程方式从 Microsoft Access 检索表,用于以下 Visual Basic 应用程序代码:
Sub GetTable()
'This sub will retrieve all the data in the "Customers" table in
'Northwind

   'Declare variables
   Dim Db As Database
   Dim Rs As Recordset
   Dim Ws As Object
   Dim i As Integer
   Dim Path as String

   'This line will define the Object "Ws" as Sheets("Sheet1")
   'The purpose of this is to save typing Sheets("Sheet1")
   'over and over again
   Set Ws = Sheets("Sheet1")

   'Set the Path to the database. This line is useful because
   'if your database is in another location, you just need to change
   'it here and the Path Variable will be used throughout the code
   Path = "c:\msoffice\access\samples\northwind.mdb"

   'This set of code will activate Sheet1 and clear any existing data
   'After clearing the data it will select cell A1
   Ws.Activate
   Range("A1").Activate
   Selection.CurrentRegion.Select
   Selection.ClearContents
   Range("A1").Select

   'Set the Database, and RecordSet  This Table exists in the database
   Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True)

   'This will set the RecordSet to all records in the Customers table
   Set Rs = Db.OpenRecordset("Customers")

   'You could instead set the RecordSet to, for example, the records
   'where the Country Code is "UK", without quotes. To do this, replace
   'the line above: Set Rs = Db.OpenRecordset("Customers") with the
   'following:
   '
   'Set Rs = _
   'Db.OpenRecordset("SELECT * FROM Customers WHERE Country = 'UK';")


   'This loop will collect the field names and place them in the first
   'row starting at "A1"
   For i = 0 To Rs.Fields.Count - 1
      Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
   Next I

   'The next line simply formats the headers to bold font
   Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold=True

   'The next line will get the data from the recordset and copy it
   'into the Worksheet (Sheet1).
   Ws.Range("A2").CopyFromRecordset Rs

   'This next code set will just select the data region and
   'auto-fit the columns
   Sheets("Sheet1").Select
   Range("A1").Select
   Selection.CurrentRegion.Select
   Selection.Columns.AutoFit
   Range("A1").Select

   Rs.Close
   Db.Close
End Sub
				

参考

有关数据访问的详细信息,请单击 Microsoft Excel 帮助中的索引选项卡,键入以下文本
在 DAO 中的数据访问
,然后双击所选的文本以转至"访问外部数据库与 DAO"主题。

属性

文章编号: 146406 - 最后修改: 2006年10月11日 - 修订: 2.3
这篇文章中的信息适用于:
  • Microsoft Excel 97 标准版
  • Microsoft Excel 95 标准版
关键字:?
kbmt kbdtacode kbhowto kbinterop kbprogramming KB146406 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 146406
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com