《最新ADO对象操作Access数据库关键技术.doc》由会员分享,可在线阅读,更多相关《最新ADO对象操作Access数据库关键技术.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateADO对象操作Access数据库关键技术ASP操作数据库关键技术ADO对象操作Access数据库关键技术ADO(ActiveX Data Object)是目前Microsoft通用的数据访问技术。ADO编程模型定义一组对象,用于访问和更新数据源,它提供了一系列方法完成以下任务:连接数据源、查询记录、添加记录、更新记录、删除记录、检查建立连接或执行命令时可能产生的错误。
2、一、ADO对象ADO是基于组件的数据库访问接口,可以来自多种数据提供者的数据进行读取和写入操作。ADO的3个成员对象:(1)Connection对象(连接对象):建立应用程序与数据源的连接。(2)Command对象(操作命令对象):在创建数据连接的基础上,利用Command对象可以实现对数据源的查询、插入、删除、编辑修改及更新操作。(3)Recordset对象(记录集对象):执行数据访问或SQL命令得到动态记录集,它被缓存在内存中。ADO的3个集合对象:(1)Errors集合对象。它依赖于Connection对象的使用。(2)Parameters集合对象。它依赖于Command对象的使用。(3
3、)Fields集合对象。它依赖于Recordset对象的使用。1、Connection对象该对象用来实现应用程序与数据源的连接。只有连接成功后,Command对象和Recordset对象才能访问某个数据库。2、Command对象该对象主要作用是在VBA中用SQL语句访问、查询数据库中的数据,可以完成Recordset对象不能完成的操作,如创建表、修改表结构、删除表、将查询结果保存为新表等。3、Recordset对象Recordset对象的功能最常用、最重要,它可以访问表和查询对象,返回的记录存储在Recordset对象中。通过该对象可以浏览记录、修改记录、添加新记录或者删除特定记录。二、在Ac
4、cess中引用ADO对象在Access的模块设计时要想使用ADO对象,首先应该增加一个对ADO库的引用。打开VBE窗口,选择菜单“工具”“引用”命令,弹出“引用”对话框,从“可使用的引用”列表中选择“Microsoft ActiveX Data Objects 2.1 Library”选项。首先在应用程序中声明一个Connection对象,然后创建Recordset对象,编程完成各种数据访问操作。1、声明Connection对象(1)定义对象:Dim cn AS ADODB.Connection(2)初始化对象:Set cn=CurrentProject.Connection (Current
5、Project为当前工程项目)2、声明并打开Recordset对象(1)声明并初始化:Dim rs As ADODB.Recordset Set rs=New ADODB.recordset(2)打开一个Recordset对象打开一个Recordset对象格式: Recordset对象名.Open 表或查询或SQL,Connection对象名,游标类型,锁类型 以下是游标类型 adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。 adOpenKeyset 1 启动一个Keyset类型的游标。 adOpenDynamic 2 启动一个Dynam
6、ic类型的游标。 adOpenStatic 3 启动一个Static类型的游标。 以下是锁类型 adLockReadOnly常数值为1 vb缺省值:Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 adLockPessimistic常数值为2 :当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 adLockOptimistic 常数值为3 :当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 adLockBatchOptimistic常数值为4 :当数据源正在更新时,其他用户必须将Curso
7、rLocation属性改为adUdeClientBatch才能对数据进行增、 删、改的操作。 adLockUnspecified常数值为-1 未指定锁定类型三、访问记录1、引用记录字段打开数据表时,默认的当前记录为第一条记录,任何对记录集(、查询)的访问都是对当前记录进行的。通过程序可以引用每个记录的字段,方法有两种:(1)直接在记录集对象中引用字段名,如:rs(“字段名”)(2)使用记录集对象的Fields(n)属性,n是一个记录中字段从左至右的排序,第一个字段序号为0,如:rs.Fields(0)2、浏览记录(1)rs.MoveFirst:指针移动到记录集的第一条记录(2)rs.MoveN
8、ext:指针移动到当前记录的下一条记录(3)rs.MovePrevious:指针移动到当前记录的上一条记录(4)rs.MoveLast:指针移动到记录集的最后一条记录四、编辑数据1、AddNew方法添加记录在程序中,使用Recordset对象的AddNew方法添加记录。(1)调用记录集的AddNew方法,产生一个空记录,如:rs.AddNew(2)为空记录的各个字段赋值,如:rs(“字段名”)=值(3)使用记录集的Update方法保存新记录,如:rs.Update2、Update方法修改记录在程序中,使用Recordset对象的Update方法实现记录的更新。(1)寻找并将记录指针移动到需要修
9、改的记录上;(2)对记录中各个字段的值进行修改;(3)使用Update方法保存所做的修改。3、Delete方法删除记录在程序中要慎重使用Delete方法,因为被删除的记录将无法恢复。(1)将记录指针移动到需要删除的记录上;(2)使用Delete方法删除当前记录;(3)将某条记录指定为当前记录(一条记录被删除后,Access不能自动使下一条记录成为当前记录)。具体用法:一、对数据库中某个具体表进行操作:首先声明Connection对象和Recordset对象: Dim conn AS ADODB.Connection Dim rs As ADODB.Recordset 初始化: Set conn
10、=CurrentProject.Connection 注:CurrentProject为当前工程项目,即当前数据库 Set rs = New ADODB.Recordset 1、查询: sql=select * from 表名 where 条件表达式 rs.open sql,conn,1,1 =rs(字段名) rs.movenext 2、插入: sql=select * from 表名 where (Id is null) rs.open sql,conn,1,3 rs.addnew rs(字段名)=字段值 rs.update 3、更新: sql=select * from 表名 where
11、条件表达式 rs.open sql,conn,1,3 rs(字段名)=字段值 rs.update 4、删除: 1) sql=select * from 表名 where 条件表达式 rs.open sql,conn,1,3 if not rs.eof then rs.delete rs.update end if 2) 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 返回记录条数-
限制150内