版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Access实例教学,潘明寒赵义霞主编中国水利水力发电出版社,Access实例教学,数据库编程(第9章),1,ADO访问数据库2,DAO访问数据库3,程序执行9.1 VBA数据库访问接口,VBA数据库访问接口是连接VBA和后台数据库的连接部分,即连接VBA和Access数据库的方法。 9.1.1种数据库访问接口,ODBC (开放数据库连接)和ODBC被称为“开放数据库连接”,是关系数据源的接口。 ODBC根据结构化语言(SQL ),将SQL设为访问数据库的标准,并且一个应用通过共同的代码集访问不同的数据库管理系统。 ODBC可以为各种数据库提供适当的驱动程序。 2 Dao (数据访问对象) D
2、ao被称为“数据访问对象”,它是面向对象的接口,提供访问数据库的对象模型,并使用其中定义的一系列数据访问对象使用DAO的程序代码非常简单。 3 ado (ActiveX数据对象) ado被称为“活动数据对象”,是一个基于组件的数据库编程接口。 ADO实际上是一种可以访问各种数据类型的连接机制,是与编程语言无关的组件对象模型(com )组件系统。 ADO的设计形式非常简单,可以很容易地连接到符合ODBC标准的数据库。 数据库引擎是一系列动态链接库dll (动态链接库),在程序运行时连接到VBA,以提供对数据库的数据访问功能。 是应用程序和物理数据库的桥梁。 VBA可以通过DAO和数据引擎识别三种
3、数据库: 1个本地数据库: Access数据库。 2外部数据库:所有索引顺序访问方法(ISAM )数据库(如VFP )。 也可以访问文本文件的数据库、Microsoft Excel和Lotus1-2-3电子表格。 3ODBC数据库:符合ODBC标准的C/S数据库,如SQL服务器、Oracle。9.2.1 DAO模型结构、DAO模型是设计关系数据库系统结构的对象类集合,它提供了管理关系数据库系统所需的所有操作的属性和方法。 包括创建数据库、表、定义字段和索引、建立表之间的关系、搜索和查询数据库等。 用9.2DAO访问数据库,表示3.2通配符、运算符和公共函数、9.2.2 DAO对象概要、1DBE
4、ngine对象、位于顶层的数据库引擎,不包括在模型中的其他对象中2Workspace对象。 表示可以使用隐式workspace对象的工作区。 3Database对象。 表示到数据库的连接,表示操作的数据库对象。 4RecordSet对象表示来自表、查询和SQL语句的执行结果的数据记录的集合。 表示记录集中的字段的5Field对象。 6QueryDef对象。 表示数据库查询信息。 7Error对象表示数据提供器发生错误时的扩展信息。 使用9.2.3DAO访问数据库,使用Dao访问数据库的情况下,通过首先在程序中设定对象变量,接着调用使用对象变量访问对象的方法,设定对象的属性,来设定数据库定义DA
5、O对象的对象前面加前缀“DAO”,通过DAO访问数据库的一般语句和步骤。Dim ws as DAO.Workspace定义Workspace对象变量Dim db as DAO.Database定义Database对象变量Dim rs as DAO.RecordSet定义RecordSet对象变量dim FD as Dao . 对象变量s et ws=DBEngine.Workspace(o )打开默认工作区Set db=ws.OpenDatabase (数据库地址和文件名)的数据库Set rs=db.OpenRecordSet 打开打开记录集循环整个Do While not rs.EOF记录集
6、, 对记录集的最后一个字段的各种操作rs.MoveNext记录指针移动到下一个循环并返回到循环的开头关闭rs.close记录集db.close的数据库set rs=nothing记录集对象更改othing数据库对象变量所占的内存区域的说明:对于本地数据库,可以省略Workspace对象变量的定义。 打开工作区和打开数据库的语句由名为Set db=CurrentDb ()的语句替换。 此语句是access VBA提供给DAO的数据库打开快捷方式。 /用DAO访问数据库(1)在表单上标记两个文本框名称t1和t2的标题分别是“名称”和“工资”。 (2)在表格标题上标记“工资增加了10%”。 (3)在
7、表单的页脚中,命令按钮名c1为“显示最初的记录”。 (4)向指令按钮写入点击事件的代码是: Dim db as DAO.Database定义Database对象变量Dim rs as DAO.Recordset定义Recordset对象变量Dim fd as DAO.Field定义Field对象变量Set db=CurrentDb () 建立与当前数据库的连接建立与setrs=db.openrecordset(gz)gz表的连接Set fd=rs.Fields (工资)设置对“工资”字段的引用Do While Not rs.EOF指针不是最后一个时设为0.1,在指定的字段值中添加10% rs.
8、Update更新表,将rs.MoveNext指针Loop向下移动并返回循环的开头将rs.MoveFirst指针移动到第一条记录t1=rs.Fields (名称)时, 名称字段的值在t1中显示为t2=rs.Fields (工资),工资字段的值在t2中显示为RS.close db.close sets RS=nothing set db=nothing,(5)转至表单视图并单击命令按钮使用9.3ADO访问数据库的9.3.1 ADO模型结构、ado对象模型是一系列对象的集合,对象没有分层,可以直接创建Field对象和除Error对象以外的对象。 使用时,通过从对象变量调用对象的方法,设定对象的属性,
9、来实现对数据库的访问。9.3.2 ADO对象概述、1建立到连接对象和数据源的连接。 2Command对象。 表示指令。 3RecordSet对象。 表示数据操作返回的记录的集合。 表示记录集中的字段的4Field对象。 5Error对象表示在数据提供器中发生错误时的扩展信息。 连接对象和RecordSet对象是两个ADO中最重要的对象。 RecordSet对象既可以用于连接对象,也可以用于Command对象。 在9.3.3ado中访问数据库,首先创建对象变量,然后通过对象的方法和属性访问数据库。 为了区别DAO中同名的对象,在ADO对象前面加前缀“ADODB”。使用ADO访问数据库的一般语句和
10、步骤:1RecordSet是、 使用Dim cn as new ADOBD.Connection与连接对象建立连接对象Dim rs as new ADOBD.RecordSet记录集对象vider=Microsoft 打开Open连接字符串数据库打开rs.Open查询字符串记录集do while not rs.EOF循环将对字段的各种操作rs.movenext记录指针移动到下一条,loop循环返回到循环的开头RS.cl 变焦连接set rs=nothing记录集对象变量占用的存储器区域set cn=nothing释放连接对象变量占用的存储器区域的说明:在本地数据库的情况下Acces
11、s的VBA在ADO上打开像DAO那样的数据库的快捷方式可以用以下语句替换要设置数据提供器的语句和打开数据库的语句: setcn=current project.connection (), 2RecordSet为, 与Command对象结合使用Dim cm as new ADOBD.Command创建命令对象Dim rs as new ADOBD.RecordSet记录集对象cm.ActiveConnection=连接字符串eve连接cm.CommandType=查询类型指定命令对象的查询类型cm.CommandText=创建查询字符串命令对象的查询字符串rs. Open cm其他参数记录集d
12、o while not rs.EOF规则rs.movenext记录指针移动到下一个循环并返回到循环的开头关闭rs.close记录集set rs=nothing以释放记录集对象变量所占用的内存区域。 示例:通过ADO访问数据库,并在表单中创建三个文本框名称t1、t2和t3。 (2)将标签标题标记为“员工增加”。 (3)在表单页脚中创建命令按钮名c1时,标题为“追加到表中”。 (4) 命令按钮c1的单击事件代码: dimcnasnewdadodb.connectiondimrsasnewadodb.recordsetdimstr1asstring set=current project.conne
13、ction本地s.openselect教师编号From教师Where教师编号= t1 If rs.EOF=False Then MsgBox此号码已经存在,无法添加Else str1=Insert Into教师(教师编号、名称、性别)“str1=str1values (t2,t3 ) cn.Execute str1执行指定的SQL语句,并添加了MsgBox。 请继续endif RS.close cn.close set Sr=nothing set=nothing说明:程序用t1获取文本框t1的值,并将用双引号分隔的部分更改为单引号。 不能连续写两个相同的引号。 Execute使用Comman
14、d和Connection对象的方法执行指定的查询,并将结果存储在Recordset对象中。 (5)转到表格视图,输入的号码与表中的号码重复的情况下,点击命令按钮就会显示消息框,不能将输入的信息添加到表中。图1-15层次模型,(6)输入的号码与表中的号码不重复的情况下,点击命令按钮会显示消息框,输入的信息被追加到表中。9.4 VBA程序错误处理,VBA提供On Error语句,控制发生错误时程序的处理,启动错误处理程序,指定子程序的位置。 错误处理程序是用行号标记的代码,而不是Sub过程或Function过程。9.4.1 On Error语句的语法和On Error语句的语法通常有三种样式。 1
15、On Error GoTo行号启动错误处理程序,当发生运行时错误时,控件移动到行号指定的位置,并执行其中的代码。 指定的行号必须与On Error语句位于同一过程中。 例如,发生On Error GoTo aa错误时,aa位置aa:行号aa错误处理程序的代码处理错误功能:发生程序错误时,跳转到aa位置执行。 如果发生2On Error Resume Next执行错误,则无论发生什么错误,都会继续执行以下语句。 要以此格式访问对象,请不要使用On Error GoTo语句。3On Error GoTo 0关闭错误处理,禁止在当前进程中启动的错误处理程序。9.4.2理解错误信息,1Err对象Err是包含运行时错误信息的对象,Err对象的number属性返回错误码。 有助于在Err.Source中判断哪个对象发生了错误,在Err.Number中判断哪个对象放了错误代码。 Err是全局范围的唯一对象,不需要在代码中创建这些对象的实例。 2rror函数格式: rror (错误编号) rror函数的参数是有效的错误编号,函数返回与已知错误编号相对应的错误信息。 如果不是有效的错误编号,就会发生错误。 错误号码是可选的。 如果省略,则返回与最后一次执行错误对应的消息。 如果没有执行错误或错误编号为0,则Error函数返回长度为零
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论