《Access数据库VBA数据库编程.ppt》由会员分享,可在线阅读,更多相关《Access数据库VBA数据库编程.ppt(35页珍藏版)》请在优知文库上搜索。
1、数据库原理及应用(Access2003)第第9章章 VBA数据库编程数据库编程 第9章 VBA数据库编程9.1 数据库引擎及其接口数据库引擎及其接口9.2 数据访问对象数据访问对象 9.2.1 DAO模型结构模型结构 9.2.2 主要的主要的DAO对象对象 9.2.3 利用利用DAO访问数据库访问数据库 9.3 ActiveX数据对象数据对象 9.3.1 ADO模型结构模型结构 9.3.2 主要主要ADO对象的使用对象的使用 9.3.3利用利用ADO访问数据库访问数据库 第9章 VBA数据库编程概要介绍:概要介绍: 前面已经介绍了模块和前面已经介绍了模块和VBAVBA程序设计基础知识,包程序设
2、计基础知识,包括括VBAVBA面向对象程序设计初步知识。实际上,要想快速、面向对象程序设计初步知识。实际上,要想快速、有效地管理好数据,开发出更具实用价值的有效地管理好数据,开发出更具实用价值的 Access Access 数据库应用程序,还应当了解和掌握数据库应用程序,还应当了解和掌握 VBA VBA 的数据库编的数据库编程方法。程方法。 本章我们首先介绍数据库访问接口,然后介绍本章我们首先介绍数据库访问接口,然后介绍AccessAccess支持的支持的DAODAO和和ADOADO两种数据库编程方法。两种数据库编程方法。 9.1 数据库引擎及其接口数据库引擎及其接口 VBAVBA是通过是通过
3、Microsoft JetMicrosoft Jet数据库引擎工具来支持对数据库的数据库引擎工具来支持对数据库的访问。所谓数据库引擎访问。所谓数据库引擎 实际上是一组动态链接库(实际上是一组动态链接库(DLL)DLL),当程序运行时被链接到,当程序运行时被链接到 VBA VBA 程序而实现对数据库的数据访问功能。数据库引擎是应程序而实现对数据库的数据访问功能。数据库引擎是应用程序与物理数据库之间的桥梁,它以一种通用接口的方式用程序与物理数据库之间的桥梁,它以一种通用接口的方式, 使各种类型物理数据库对用户而言都具有统一的形式和相同使各种类型物理数据库对用户而言都具有统一的形式和相同的数据访问与
4、处理方法。的数据访问与处理方法。 9.1 数据库引擎及其接口数据库引擎及其接口 在在VBAVBA中主要提供了中主要提供了3 3种数据库访问接口:种数据库访问接口:(1 1)开放数据库互连应用编程接口()开放数据库互连应用编程接口(Open Database Open Database Connectivity APIConnectivity API,ODBC APIODBC API)。目前)。目前 Windows Windows 提供的提供的 32 32 位位 ODBC ODBC 驱动程序对每一种客户驱动程序对每一种客户/ /服务器服务器 关系型数据库管理系关系型数据库管理系统、最流行的索引顺
5、序访问方法(统、最流行的索引顺序访问方法(ISAMISAM)数据库()数据库(JetJet、dBasedBase、Foxbase Foxbase 和和 FoxProFoxPro)、扩展表()、扩展表(ExcelExcel)和定界文本文件都)和定界文本文件都可以操作。在可以操作。在 Access Access 应用中,直接使用应用中,直接使用 ODBC APIODBC API需要大量需要大量VBAVBA函数原型声明(函数原型声明(DeclareDeclare)和一些繁琐、低级的编程,因此)和一些繁琐、低级的编程,因此,实际编程很少直接进行,实际编程很少直接进行 ODBC APIODBC API的
6、访问。的访问。(2 2)数据访问对象()数据访问对象(Data Access ObjectsData Access Objects,DAODAO)。)。DAO DAO 提供一提供一个访问数据库的对象模型。利用其中定义的一系列数据访问对个访问数据库的对象模型。利用其中定义的一系列数据访问对象,例如,象,例如,DatabaseDatabase、QueryDefQueryDef、RecordSet RecordSet 等对象,实现对等对象,实现对数据库的各种操作。数据库的各种操作。 9.1 数据库引擎及其接口数据库引擎及其接口 (3 3)ActiveActive数据对象(数据对象(ActiveX D
7、ata ObjectsActiveX Data Objects,ADOADO)。)。ADOADO是基是基于组件的数据库编程接口,是一个和编程语言无关的于组件的数据库编程接口,是一个和编程语言无关的 COM COM 组件组件系统。使用它可以方便地连接任何符合系统。使用它可以方便地连接任何符合 ODBC ODBC 标准的数据库。标准的数据库。ADOADO支持的数据资源范围比支持的数据资源范围比DAODAO广泛。广泛。 9.1 数据库引擎及其接口数据库引擎及其接口 VBAVBA通过数据库引擎可以访问的数据库有以下通过数据库引擎可以访问的数据库有以下3 3种类型。种类型。(1 1)本地数据库:即)本地
8、数据库:即AccessAccess数据库。数据库。(2 2)外部数据库:指所有的索引顺序访问方法()外部数据库:指所有的索引顺序访问方法(ISAMISAM)数据库。)数据库。(3 3)ODBCODBC数据库:符合开放数据库连接(数据库:符合开放数据库连接(ODBCODBC)标准的客户)标准的客户/ /服服务器数据库,例如,务器数据库,例如,OracleOracle、Microsoft SQL ServerMicrosoft SQL Server等。等。9.2 数据访问对象数据访问对象 数据访问对象(数据访问对象(DAODAO)包含了很多对象和集合,通过)包含了很多对象和集合,通过JetJet引
9、擎引擎来连接来连接AccessAccess数据库和其他的数据库和其他的ODBCODBC数据库。数据库。 DAODAO模型为进行数据库编程提供了需要的属性和方法。利用模型为进行数据库编程提供了需要的属性和方法。利用DAODAO可以完成对数据库的创建,如创建表、字段和索引,完成可以完成对数据库的创建,如创建表、字段和索引,完成对记录的定位和查询以及对数据库的修改和删除等。对记录的定位和查询以及对数据库的修改和删除等。 数据访问对象完全在代码中运行,使用代码操纵数据访问对象完全在代码中运行,使用代码操纵JetJet引擎访问引擎访问数据库数据,能够开发出更强大更高效的数据库应用程序。数据库数据,能够开
10、发出更强大更高效的数据库应用程序。使用数据访问对象开发应用程序,使数据访问更有效,同时使用数据访问对象开发应用程序,使数据访问更有效,同时对数据的控制更灵活更全面,给程序员提供了广阔的发挥空对数据的控制更灵活更全面,给程序员提供了广阔的发挥空间。间。9.2 数据访问对象数据访问对象 有图所示为有图所示为DAODAO模型分模型分层结构简图。层结构简图。9.2.1 DAO9.2.1 DAO模型结构模型结构9.2 数据访问对象数据访问对象 DAODAO对象模型是一个分层的树型结构,它包含了一个复杂对象模型是一个分层的树型结构,它包含了一个复杂的可编程数据关联对象的层次,其中的可编程数据关联对象的层次
11、,其中DBEngineDBEngine对象处于对象处于最顶层,它是模型中唯一不被其它对象所包含的数据库最顶层,它是模型中唯一不被其它对象所包含的数据库引擎本身。层次低的一些对象,如引擎本身。层次低的一些对象,如Workspace(s)Workspace(s)、 Database(s) Database(s) 、QueryDef(s) QueryDef(s) 、RecordSet(s)RecordSet(s)和和 Field(s)Field(s)是是DBEngineDBEngine对象下的对象层,其下的各种对象对象下的对象层,其下的各种对象分别对应被访问的数据库的不同部分。在程序中设置对分别对应
12、被访问的数据库的不同部分。在程序中设置对象变量,并通过对象变量来调用访问对象方法、设置访象变量,并通过对象变量来调用访问对象方法、设置访问对象属性,这样就实现了对数据库的各种访问操作。问对象属性,这样就实现了对数据库的各种访问操作。 9.2.1 DAO9.2.1 DAO模型结构模型结构9.2 数据访问对象数据访问对象1. DBEngine1. DBEngine对象对象在在DAODAO的分层结构中可以看到,的分层结构中可以看到,DBEngineDBEngine对象是顶层对象,它包含对象是顶层对象,它包含了其他所有的数据访问对象和集合,是惟一不被其他对象所包含了其他所有的数据访问对象和集合,是惟一
13、不被其他对象所包含的数据库访问对象,实际上,的数据库访问对象,实际上,DBEngine DBEngine 对象就是对象就是 Jet Jet 数据库引数据库引擎本身。擎本身。DBEngineDBEngine对象包含一个对象包含一个WorkspaceWorkspace对象集合,该集合由一个或多个对象集合,该集合由一个或多个WorkspaceWorkspace对象组成。如果要建立一个新的对象组成。如果要建立一个新的 Workspace Workspace 对象,则对象,则应当使用应当使用 CreateWorkspace CreateWorkspace 方法。该方法的使用语法如下:方法。该方法的使用语
14、法如下:Set myWsSet myWsDBEngine.CreateWorkspaces(name,user,password,type) DBEngine.CreateWorkspaces(name,user,password,type) 9.2.2 9.2.2 主要的主要的DAODAO对象对象 9.2 数据访问对象数据访问对象 其中,其中,myWsmyWs是一个是一个WorkspaceWorkspace对象。对象。namename指定工作区的名字。指定工作区的名字。useruser设置该工作区的用户名。设置该工作区的用户名。password password 是使用者的密码。是使用者的密
15、码。type type 是用于确定即将创建的是用于确定即将创建的 Workspace Workspace 对象的类型的可选参数,使对象的类型的可选参数,使用用 DAO DAO 可以创建两种类型的可以创建两种类型的 Workspace Workspace 对象,即对象,即 Jet Jet 型和型和 ODBC ODBC 型,对应这两种类型的常量分别是:型,对应这两种类型的常量分别是:dbUseJet dbUseJet 和和 dbUseODBCdbUseODBC。 Dim ws1 As WorkspaceDim ws1 As Workspace Set ws1 = DBEngine.CreateWo
16、rkspaces(ws1,zyySet ws1 = DBEngine.CreateWorkspaces(ws1,zyy, ) )9.2.2 9.2.2 主要的主要的DAODAO对象对象 9.2 数据访问对象数据访问对象2. Workspace2. Workspace对象对象在在DBEngineDBEngine对象中有一个对象中有一个WorkspaceWorkspace对象集合,该集合包含了当对象集合,该集合包含了当前可使用的前可使用的Workspace Workspace 对象。对象。WorkspaceWorkspace为用户定义了一个有为用户定义了一个有名字的会话区。名字的会话区。WorkspaceWorkspace对象定义了使用何种方式与连接数对象定义了使用何种方式与连接数据。在据。在DAODAO中,可以使用中,可以使用Microsoft JetMicrosoft Jet引擎或引擎或 ODBCDirectODBCDirect中中的任意一种,视数据源而定,而连接方式的实现,则可以通过的任意一种,视数据源而定,而连接方式的实现,则可以通过Workspace Workspace 对象来定