《ado对象操作access数据库关键技术》由会员分享,可在线阅读,更多相关《ado对象操作access数据库关键技术(4页珍藏版)》请在金锄头文库上搜索。
1、ADO 对象操作对象操作 Access 数据库关键技术数据库关键技术ADO(ActiveX Data Object)是目前 Microsoft 通用的数据访问技术。ADO 编程模型 定义一组对象,用于访问和更新数据源,它提供了一系列方法完成以下任务: 连接数据源、查询记录、添加记录、更新记录、删除记录、检查建立连接或执行命 令时可能产生的错误。 一、ADO 对象 ADO 是基于组件的数据库访问接口,可以来自多种数据提供者的数据进行读取和写 入操作。 ADO 的 3 个成员对象: (1)Connection 对象(连接对象):建立应用程序与数据源的连接。 (2)Command 对象(操作命令对象
2、):在创建数据连接的基础上,利用 Command 对象可以实现对数据源的查询、插入、删除、编辑修改及更新操作。 (3)Recordset 对象(记录集对象):执行数据访问或 SQL 命令得到动态记录集, 它被缓存在内存中。 ADO 的 3 个集合对象: (1)Errors 集合对象。它依赖于 Connection 对象的使用。 (2)Parameters 集合对象。它依赖于 Command 对象的使用。 (3)Fields 集合对象。它依赖于 Recordset 对象的使用。 1、Connection 对象 该对象用来实现应用程序与数据源的连接。只有连接成功后,Command 对象和 Reco
3、rdset 对象才能访问某个数据库。 2、Command 对象 该对象主要作用是在 VBA 中用 SQL 语句访问、查询数据库中的数据,可以完成 Recordset 对象不能完成的操作,如创建表、修改表结构、删除表、将查询结果保存为新 表等。 3、Recordset 对象 Recordset 对象的功能最常用、最重要,它可以访问表和查询对象,返回的记录存储 在 Recordset 对象中。通过该对象可以浏览记录、修改记录、添加新记录或者删除特定记 录。 二、在 Access 中引用 ADO 对象 在 Access 的模块设计时要想使用 ADO 对象,首先应该增加一个对 ADO 库的引用。 打开
4、 VBE 窗口,选择菜单“工具”“引用”命令,弹出“引用”对话框,从“可使用 的引用”列表中选择“Microsoft ActiveX Data Objects 2.1 Library”选项。 首先在应用程序中声明一个 Connection 对象,然后创建 Recordset 对象,编程完成各 种数据访问操作。 1、声明 Connection 对象 (1)定义对象:Dim cn AS ADODB.Connection (2)初始化对象:Set cn=CurrentProject.Connection (CurrentProject 为当前工程项 目) 2、声明并打开 Recordset 对象 (
5、1)声明并初始化:Dim rs As ADODB.RecordsetSet rs=New ADODB.recordset (2)打开一个 Recordset 对象打开一个 Recordset 对象格式:Recordset 对象名对象名.Open 表或查询或表或查询或 SQL,Connection 对象名,游标类型,锁类型对象名,游标类型,锁类型以下是游标类型adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。adOpenKeyset 1 启动一个 Keyset 类型的游标。adOpenDynamic 2 启动一个 Dynamic 类型的游标。
6、adOpenStatic 3 启动一个 Static 类型的游标。以下是锁类型adLockReadOnly 常数值为 1 vb 缺省值:Recordset 对象以只读方式启动,无法运 行 AddNew、Update 及 Delete 等方法adLockPessimistic 常数值为 2 :当数据源正在更新时,系统会暂时锁住其他用户 的动作,以保持数据一致性。adLockOptimistic 常数值为 3 :当数据源正在更新时,系统并不会锁住其他用户 的动作,其他用户可以对数据进行增、删、改的操作。adLockBatchOptimistic 常数值为 4 :当数据源正在更新时,其他用户必须将
7、CursorLocation 属性改为 adUdeClientBatch 才能对数据进行增、 删、 改的操作。adLockUnspecified 常数值为-1 未指定锁定类型 三、访问记录 1、引用记录字段 打开数据表时,默认的当前记录为第一条记录,任何对记录集(、查询)的访问都 是对当前记录进行的。 通过程序可以引用每个记录的字段,方法有两种: (1)直接在记录集对象中引用字段名,如:rs(“字段名”) (2)使用记录集对象的 Fields(n)属性,n 是一个记录中字段从左至右的排序,第一 个字段序号为 0,如:rs.Fields(0) 2、浏览记录 (1)rs.MoveFirst:指针移
8、动到记录集的第一条记录 (2)rs.MoveNext:指针移动到当前记录的下一条记录 (3)rs.MovePrevious:指针移动到当前记录的上一条记录 (4)rs.MoveLast:指针移动到记录集的最后一条记录 四、编辑数据 1、AddNew 方法添加记录 在程序中,使用 Recordset 对象的 AddNew 方法添加记录。 (1)调用记录集的 AddNew 方法,产生一个空记录,如:rs.AddNew (2)为空记录的各个字段赋值,如:rs(“字段名”)=值 (3)使用记录集的 Update 方法保存新记录,如:rs.Update 2、Update 方法修改记录 在程序中,使用 R
9、ecordset 对象的 Update 方法实现记录的更新。(1)寻找并将记录指针移动到需要修改的记录上; (2)对记录中各个字段的值进行修改; (3)使用 Update 方法保存所做的修改。 3、Delete 方法删除记录 在程序中要慎重使用 Delete 方法,因为被删除的记录将无法恢复。 (1)将记录指针移动到需要删除的记录上; (2)使用 Delete 方法删除当前记录; (3)将某条记录指定为当前记录(一条记录被删除后,Access 不能自动使下一条记 录成为当前记录)。具体用法:具体用法:一、对数据库中某个具体表进行操作:一、对数据库中某个具体表进行操作:首先声明 Connecti
10、on 对象和 Recordset 对象:Dim conn AS ADODB.ConnectionDim rs As ADODB.Recordset初始化:Set conn=CurrentProject.Connection 注:CurrentProject 为当前工程项目,即当前数据 库Set rs = New ADODB.Recordset1、查询:sql=“select * from 表名 where 条件表达式“ rs.open sql,conn,1,1=rs(“字段名“)rs.movenext2、插入:sql=“select * from 表名 where (Id is null)“r
11、s.open sql,conn,1,3rs.addnewrs(“字段名“)=字段值rs.update3、更新:sql=“select * from 表名 where 条件表达式“ rs.open sql,conn,1,3rs(“字段名“)=字段值rs.update4、删除:1)sql=“select * from 表名 where 条件表达式“rs.open sql,conn,1,3if not rs.eof thenrs.deleters.updateend if2)sql=“delete from 表名 where 条件表达式“rs.open sql,conn,1,3 二、其他常用命令:二、其他常用命令:rs.close 关闭记录集对象set rs=nothing 清空记录集对象conn.close 关闭数据库连接对象set conn=nothing 清空数据库连接对象rs.MoveFirst 移动到第一条记录处rs.MovePrevious 移动到上一条记录处rs.absoluteposition=N 将记录指针移到数据表第 N 行rs.MoveNext 移动到下一条记录处rs.Movelast 移动到最后一条记录处rs.eof 指针是否指向最后一条记录之后rs.bof 指针是否指向第一条记录之前rs.recordcount 返回记录条数