Access基础与应用教程VBA的数据库编程.pptx
《Access基础与应用教程VBA的数据库编程.pptx》由会员分享,可在线阅读,更多相关《Access基础与应用教程VBA的数据库编程.pptx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9 9章章 VBAVBA的数据库编程的数据库编程本章主要内容退出9.1 9.1 数据库访问接口数据库访问接口9.2 9.2 数据访问对象(数据访问对象(DAODAO)9.3 ActiveX9.3 ActiveX数据对象(数据对象(ADOADO)第1页/共44页9.1 9.1 数据库访问接口数据库访问接口 为了在为了在VBA程序代码中能方便地实现对数据库的数程序代码中能方便地实现对数据库的数据访问功能,据访问功能,VBA语言提供有相应的通用的接口方式。语言提供有相应的通用的接口方式。VBA是通过是通过 Microsoft Jet 数据库引擎工具来支持数据库引擎工具来支持对数据库的访问。所谓数
2、据库引擎实际上是一组动态链对数据库的访问。所谓数据库引擎实际上是一组动态链接库(接库(DLL),当程序运行时被连接到),当程序运行时被连接到 VBA 程序而实程序而实现对数据库的数据访问功能。数据库引擎是应用程序与现对数据库的数据访问功能。数据库引擎是应用程序与物理数据库之间的桥梁,它以一种通用接口的方式,使物理数据库之间的桥梁,它以一种通用接口的方式,使各种类型物理数据库对用户而言都具有统一的形式和相各种类型物理数据库对用户而言都具有统一的形式和相同的数据访问与处理方法。同的数据访问与处理方法。第2页/共44页9.1 9.1 9.1 9.1 数据库访问接口数据库访问接口数据库访问接口数据库访
3、问接口(续)(续)(续)(续)在在VBA语言中,提供了如下三种基本的数据库访问接口语言中,提供了如下三种基本的数据库访问接口:(1)开放数据库互连应用编程接口()开放数据库互连应用编程接口(简称简称ODBC API)。)。(2)数据访问对象()数据访问对象(简称简称DAO)。)。(3)Active数据对象(数据对象(简称简称ADO)。)。在在VBA语言程序设计中,通过数据库引擎可以访问如下语言程序设计中,通过数据库引擎可以访问如下三种类型的数据库:三种类型的数据库:(1)本地数据库,即是)本地数据库,即是 Access 数据库。数据库。(2)外部数据库,即是所有的索引顺序访问方法)外部数据库,
4、即是所有的索引顺序访问方法(ISAM)数据库。数据库。(3)ODBC数据库,即是符合开放数据库连接数据库,即是符合开放数据库连接(ODBC)标准的数据库,例如,标准的数据库,例如,Oracle、Microsoft SQL Server等。等。第3页/共44页9.2 9.2 数据访问对象(数据访问对象(DAODAO)数据访问对象(数据访问对象(DAO)是)是VBA语言提供的语言提供的一种数据访问接口,包括数据库、表和查询的创一种数据访问接口,包括数据库、表和查询的创建等功能,通过运行建等功能,通过运行VBA程序代码可以灵活地控程序代码可以灵活地控制数据访问的各种操作。制数据访问的各种操作。在在A
5、ccess 2010中,可以在中,可以在VBA程序中使用程序中使用DAO来访问(来访问(*.mdb)数据库和()数据库和(*.accdb)数据)数据库。库。第4页/共44页9.2.1 DAO9.2.1 DAO模型结构模型结构第5页/共44页 DAO 模型的分层结构图如图模型的分层结构图如图10-2所示。它包含了一个所示。它包含了一个复杂的可编程数据关联对象的层次,其中复杂的可编程数据关联对象的层次,其中 DBEngine对象对象处于最顶层,它是模型中惟一不被其他对象所包含的数据处于最顶层,它是模型中惟一不被其他对象所包含的数据库引擎本身。层次低一层对象是,库引擎本身。层次低一层对象是,Erro
6、rs和和 Workspaces对象。层次再低一层对象如对象。层次再低一层对象如Errors对象的低一层对象是对象的低一层对象是Error;Workspaces 对象的低一层对象是对象的低一层对象是 Workspace。Databases 的低一层对象是的低一层对象是 Database。Database 的低的低一层对象是一层对象是 Containers、QueryDefs、RecordSets、Relations 和和 TableDefs。TableDefs对象的低一层对象是对象的低一层对象是 TableDef。同理如此类推,在此不作详列。同理如此类推,在此不作详列。其中对象名的尾字符为其中对
7、象名的尾字符为“s”的那些对象(如,的那些对象(如,Errors、Workspaces、Databases、TableDefs、Fields 等)是等)是集合对象,集合对象下一层包含其成员对象。集合对象,集合对象下一层包含其成员对象。第6页/共44页对象对象说明说明DBEngine表示表示Microsoft Jet数据库引擎。它是数据库引擎。它是DAO模型的最上层对象,模型的最上层对象,而且包含并控制而且包含并控制DAO模型中的其余全部对象。模型中的其余全部对象。Workspace表示工作区。表示工作区。Database表示操作的数据库对象。表示操作的数据库对象。Container表示数据库中
8、各种对象的基本数据,如使用权限等。表示数据库中各种对象的基本数据,如使用权限等。Document表示文档表示文档QueryDef表示数据库查询信息。表示数据库查询信息。Parameter表示参数查询中的参数。表示参数查询中的参数。RecordSet表示数据操作返回的记录集。表示数据操作返回的记录集。Relation表示数据表之间的关系。表示数据表之间的关系。TableDef表示数据库中的表。表示数据库中的表。Field表示字段,包含数据类型和属性等。表示字段,包含数据类型和属性等。Index表示数据表中定义的索引字段。表示数据表中定义的索引字段。Group表示数据库中的组。表示数据库中的组。U
9、ser表示使用数据库的用户信息。表示使用数据库的用户信息。Error包含使用包含使用DAO对象产生的错误信息。对象产生的错误信息。第7页/共44页9.2.2 DAO9.2.2 DAO对象变量的声明和赋值对象变量的声明和赋值 DAO 对象必须通过对象必须通过 VBA 程序代码来控制和操作。在代码程序代码来控制和操作。在代码中,必须设置对象变量,然后再通过对象变量使用其下的对象、中,必须设置对象变量,然后再通过对象变量使用其下的对象、或者对象的属性和方法。或者对象的属性和方法。1对象变量的声明对象变量的声明 同普通变量的声明一样,声明的关键字可以是同普通变量的声明一样,声明的关键字可以是 Dim、
10、Private、Public 等。等。声明对象变量的语句格式:声明对象变量的语句格式:Dim 对象变量名对象变量名 As 对象类型对象类型 例如:例如:Dim wks As Workspace 声明声明wks为工作区对象变量为工作区对象变量 Dim dbs As Database 声明声明dbs为数据库对象变量为数据库对象变量第8页/共44页2 2对象变量的赋值对象变量的赋值 Dim 只是声明了对象变量的类型,对象变量的值只是声明了对象变量的类型,对象变量的值必须通过必须通过 Set 赋值语句来赋值。赋值语句来赋值。Set赋值语句的格式:赋值语句的格式:Set 对象变量名称对象变量名称=对象指
11、定声明对象指定声明例如:例如:Set wks=DBEngine.Workspaces(0)打开默认工作区(即打开默认工作区(即0号工作区)号工作区)Set dbs=wks.OpenDatabase(E:Access职工管理职工管理.accdb)打开数据库打开数据库第9页/共44页例例9-1 9-1 例例9-1 通过通过 DAO 编程,显示当前打开的数据库的名编程,显示当前打开的数据库的名称。称。Private Sub Cmd1_Click()Dim wks As Workspace 声明工作区对象变量声明工作区对象变量 Dim dbs As Database 声明数据库对象变量声明数据库对象变
12、量 Set wks=DBEngine.Workspaces(0)打开默认工作区(即打开默认工作区(即0号工作区)号工作区)Set dbs=wks.Databases(0)打开当前打开当前(默认)(默认)数据库(即数据库(即0号数据库)号数据库)MsgBox dbs.Name Name 是是 Database 对象变量的属性对象变量的属性End Sub第10页/共44页例例9-1 9-1(续)(续)第11页/共44页9.2.3 DAO9.2.3 DAO对象的部分属性和方法对象的部分属性和方法 1Database 对象的常用属性和方法对象的常用属性和方法 Database 对象代表数据库。对象代表
13、数据库。Database对象的常对象的常用属性如表用属性如表9-2所示。所示。Database对象的常用方法如表对象的常用方法如表9-3所示。所示。属性属性说明说明Name标识一个数据库对象的名称标识一个数据库对象的名称Updatable表示数据库对象是否可以被更新(为表示数据库对象是否可以被更新(为True 可以可以更新,为更新,为 False 不可以更新)不可以更新)表表9-2 Database对象的常用属性对象的常用属性 第12页/共44页表表9-3 Database对象的常用方法对象的常用方法方法方法说明说明CreatQueryDef 创建一个新的查询对象创建一个新的查询对象Creat
14、TableDef创建一个新的表对象创建一个新的表对象CreatRelation建立新的关系建立新的关系OpenRecordSet创建一个新的记录集创建一个新的记录集Excute执行一个执行一个SQL查询查询Close关闭数据库关闭数据库第13页/共44页2 2TableDef TableDef 对象的对象的CreateFieldCreateField方法方法 使用使用 TableDef 对象的对象的 CreateField 方法可创建表方法可创建表中的字段。中的字段。使用使用 CreateField方方 法的语句格式:法的语句格式:Set fed=tbe.CreateField(name,ty
15、pe,size)其中:其中:fed 是字段对象变量。是字段对象变量。tbe 是表对象变量。是表对象变量。name是字段名。是字段名。type 是字段的数据类型,要用英文字符表是字段的数据类型,要用英文字符表示,如示,如 dbText 表示文本型,表示文本型,dbInteger 表示整型。表示整型。size 表示字段大小。表示字段大小。第14页/共44页3 3RecordSet RecordSet 对象的常用属性和方法对象的常用属性和方法 RecordSet 对象代表一个表或查询中的所有对象代表一个表或查询中的所有记录。记录。RecordSet 对象提供了对记录的添加、对象提供了对记录的添加、删
16、除和修改等操作的支持。删除和修改等操作的支持。RecordSet 对象的常用属性如表对象的常用属性如表9-4所示。所示。RecordSet 对象的常用方法如表对象的常用方法如表9-5所示。所示。第15页/共44页表表9-4 RecordSet对象的常用属性对象的常用属性 属性属性说明说明Bof若为若为 True,记录指针指向记录集的第一个记,记录指针指向记录集的第一个记录之前录之前Eof若为若为 True,记录指针指向记录集的最后一个,记录指针指向记录集的最后一个记录之后记录之后Filter设置筛选条件过滤出满足条件的记录设置筛选条件过滤出满足条件的记录RecordCount返回记录集对象中的
17、记录个数返回记录集对象中的记录个数NoMatch使用使用 Find 方法时,如果没有匹配的记录,则方法时,如果没有匹配的记录,则为为 True,否则为,否则为 False第16页/共44页 表表9-5 RecordSet 对象的常用方法对象的常用方法的方法的方法方法方法说明说明AddNew添加新记录添加新记录Delete删除当前记录删除当前记录Eidt编辑当前记录。编辑当前记录。FindFirst查找第一个满足条件的记录。查找第一个满足条件的记录。FindLast查找最后一个满足条件的记录。查找最后一个满足条件的记录。FindNext查找下一个满足条件的记录。查找下一个满足条件的记录。Find
18、Previous查找前一个满足条件的记录。查找前一个满足条件的记录。Move移动记录指针。移动记录指针。MoveFirst把记录指针移到第一个记录。把记录指针移到第一个记录。MoveLast把记录指针移到最后一个记录。把记录指针移到最后一个记录。MoveNext把记录指针移到下一个记录。把记录指针移到下一个记录。MovePrevious把记录指针移到前一个记录。把记录指针移到前一个记录。Requery重新运行查询,以更新重新运行查询,以更新 RecordSet 中的记录。中的记录。第17页/共44页9.2.4 9.2.4 利用利用DAODAO访问数据库访问数据库 在在 VBA 编程中,利用编程
19、中,利用 DAO 实现对数据库实现对数据库访问时,要先创建对象变量,再通过对象方法访问时,要先创建对象变量,再通过对象方法和属性来进行操作。和属性来进行操作。下面通过例子介绍利用下面通过例子介绍利用 DAO 实现对数据库实现对数据库访问的一般语句和步骤:访问的一般语句和步骤:第18页/共44页例例9-2 9-2(DAODAO数据库编程例数据库编程例)例例9-2编写一个使用编写一个使用DAO的名为的名为UseDaoUpdateAge的子过的子过程,通过调用该子过程来完成对程,通过调用该子过程来完成对“职工管理职工管理”数据库的数据库的“职工基职工基本资料本资料”表的年龄字段值都加表的年龄字段值都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 基础 应用 教程 VBA 数据库 编程
限制150内