VBA数据库编程.ppt_第1页
VBA数据库编程.ppt_第2页
VBA数据库编程.ppt_第3页
VBA数据库编程.ppt_第4页
VBA数据库编程.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九章 VBA数据库编程,二级ACCESS数据库及表,本章的重要性,2007年4月-2010年9月共8次计算机等级考试中涉及到本章内容的题目有20题,平均每次4.5分,因此本章不必花大多时间去准备。 本章在考试中不但涉及笔试题目,一般没有上机题目。,二级ACCESS数据访问页,关键考点,数据访问对象DAO概念 Active数据对象ADO概念 数据库编程的一些基本语句 几个函数,二级ACCESS模块与VBA,9.2 VBA数据库编程(P257),VBA通过数据库引擎(Microsof jet)工具完成对数据库的访问,所谓数据库引擎其实是一组动态连接库(DLL),程序运行时被连接到VBA程序程序而

2、实现对数据库的访问功能。VBA中提供了3种数据库访问接口。 ODBC API:开放数据库互连应用编程接口。 DAO:数据访问对象。 ADO:Active数据对象,VBA访问的三种数据库类型: 本地数据库:ACCESS 外部数据库 ODBC数据库:如Oracle、SyBase、SQL Server等,二级ACCESS模块与VBA,9.2 VBA数据库编程,DAO数据访问对象模型(P259),DBEngine数据库引擎为DAO模型最上层对象,包含并管理其它对象。,二级ACCESS模块与VBA,9.2 VBA数据库编程,ADO Active数据对象模型模型(P260),指定数据连接提供者,建立到数据

3、源的连接。,可执行一个命令,如可执行SQL查询。一般用于表结构的修改。,可执行SQL查询返回一个记录集,并可对记录集进行修改、插入、删除操作。是ADO中最灵活的对象。,二级ACCESS模块与VBA,9.2 VBA数据库编程,例:分别用DAO和ADO来完成对“教学管理.mdb”文件中“学生表”的学生年龄都加1的操作。(假设文件存放在E盘“考试中心”文件夹中) (P270),使用DAO技术: Sub SetAgePlus1() dim we as DAO.Workspace 工作区对象 dim db as DAO.Database 数据库对象 dim rs as DAO.Recordset 记录集

4、对象 dim fd as DAO.Field 字段对象 set ws=DBEngine.Workspace(0) set db=ws.OpenDatabase(“e:考试中心教程教学管理.mdb”) 打开数据库 set rs=db.OpenRecordSet(“学生表”) 返回“学生表”记录集 set fd=rs.Fields(“年龄”) 设置“年龄”字段,二级ACCESS模块与VBA,9.2 VBA数据库编程,对记录集用循环结构进行遍历 Do while not rs.eof rs.edit 设置为“编辑”状态 fd=fd+1 “年龄”加1 rs.update 更新记录,保存年龄值 rs.m

5、ovenext 记录指针移动至下一条 Loop 关闭并回收对象变量 rs.close db.close set rs=Nothing set db=Nothing End sub,二级ACCESS模块与VBA,9.2 VBA数据库编程,使用ADO技术: Sub SetAgePlus1() dim cn as New ADODB.Connection 连接对象 dim rs as New ADODB.RecordSet 记录集对象 dim fs as ADODB.Field 字段对象 dim strConnect as String 连接字符串 dim strSQL as String 查询字符

6、串 strconnect=“e:考试中心教程教学管理.mdb”) 设置连接数据库 cn.Provider=“Microsoft.jet.oledb.4.0” 设置数据提供者 cn.open strconnect 打开与数据源的连接 strSQL=“select 年龄 from 学生表” 设置查询语句 rs.open strSQL,cn,adOpenDynamic,adLockOptimistic,adCmdText set fd=rs.Fields(“年龄”),二级ACCESS模块与VBA,10.12 VBA数据库编程,对记录集用循环结构进行遍历 Do while not rs.eof fd=

7、fd+1 “年龄”加1 rs.update 更新记录,保存年龄值 rs.movenext 记录指针移动至下一条 Loop 关闭并回收对象变量 rs.close db.close set rs=Nothing set db=Nothing End sub,二级ACCESS模块与VBA,9.2 VBA数据库编程,ADO数据对象模型的相关要点(不掌握),Recordset对象的LocyType属性决定数据的锁定方式 adLockReadOnly:数据处于只读状态。 adLockPessimistic(保守式锁定):编辑数据时即锁定数据源记录,直到数据编辑完成才释放。 adLockOptimistic

8、(开放式锁定):编辑数据时不锁定,用Update方法提交数据时才锁定数据源记录。 adLockBatchOptimistic(开放式更新):应用于批更新模式,二级ACCESS模块与VBA,9.2 VBA数据库编程(P265),Recordset记录集对象记录指针的移动方法 MoveFirst 记录指针移到第一条记录 MoveNext 记录指针移到当前记录的下一条记录 MovePrevious 记录指针移到当前记录的上一条记录 MoveLast 记录指针移到最后一条记录,Recordset记录集的BOF和EOF属性用于判断记录指针是否处于有记录的正常位置 记录指针将指向最后一条记录之后,EOF属

9、性为True 记录指针将指向第一条记录之前,BOF属性为True BOF和EOF属性的值均为True,表示记录集为空,二级ACCESS模块与VBA,9.2 VBA数据库编程,Nz函数:将Null值转换为0,空字符串,及其他指定值 语法:Nz(表达式或字段属性值,指定值) 指定值省略时,将数值型字段中的NULL转换为0,将字符型字段的NULL转换为空字符串”。 指定值给定,则将NULL转换为指定值,数据库访问的几个重要函数(P276),DLookup函数:从指定记录集中搜索特定字段的值。 语法:DLookUp(表达式,记录集,条件式) 表达式用户返回检索字段。 如果条件返回多个记录,则返回第一个

10、记录相应字段的值 DLookUp(“学生姓名”,“学生表”,”学生姓名=张三”),二级ACCESS模块与VBA,9.2 VBA数据库编程,DCount(表达式,记录集,条件式):统计记录个数 DAvg(表达式,记录集,条件式):统计某字段的平均值 DSum(表达式,记录集,条件式):对某字段求和 表达式字段 记录集表名、查询或SQL 条件式条件表达式,数据库访问的几个重要函数,例: DCount(“编号”,“教师表”,”性别=男”) DAvg(“成绩”,“选课成绩”) DSum(“订单数”,“订单表”),【2010.3】(1)能够实现从指定记录集里检索特定字段值的函数是【 】 A)Nz B)F

11、ind C)Lookup D)DLookup 【2010.3】(2)下列程序段的功能是实现“学生”表中“年龄”字段值加1 Dim Str As String Str= Docmd.RunSQL Str 空白处应填入的程序代码是【 】 A)年龄=年龄+1 B)Update学生 Set 年龄=年龄+1 C)Set 年龄=年龄+1 D)Edit 学生 年龄=年龄+l,二级ACCESS数据访问页,过关练习,D,B,【2010.3】(1)能够实现从指定记录集里检索特定字段值的函数是【 】 A)Nz B)Find C)Lookup D)DLookup 【2010.3】(2)下列程序段的功能是实现“学生”表

12、中“年龄”字段值加1 Dim Str As String Str= Docmd.RunSQL Str 空白处应填入的程序代码是【 】 A)年龄=年龄+1 B)Update学生 Set 年龄=年龄+1 C)Set 年龄=年龄+1 D)Edit 学生 年龄=年龄+l,二级ACCESS数据访问页,过关练习,D,B,【2009.9】(3)下列过程的功能是:通过对象变量返回当前窗体的Recordset属性记录集引用,消息框中输出记录集的记录(即窗体记录源)个数。【 】 Sub GetRecNum( ) Dim rs As Object Set rs = Me.Recordset MsgBox 【 】 E

13、nd Sub 程序空白处应填写的是 A)Count B)rs.Count C)RecordCount D)rs. RecordCount,二级ACCESS数据访问页,过关练习,D,【2009.3】(4)能够实现从指定记录集里检索特定字段的函数是【 】 A)Dcount B)DLookup C)DMax D)DSum 【2008.4】(5)ADO 的含义是【 】 A)开放数据库互连应用编程接口 B)数据库访问对象 C)动态链接库 D)Active 数据对象 【2007.9】(6)在Access中,DAO的含义是【 】 A)开放数据库互连应用编程接口 B)数据库访问对象 C)Active数据对象

14、D)数据库动态链接库,二级ACCESS数据访问页,过关练习,B,D,B,二级ACCESS数据访问页,过关练习,B,D,B,Private Sub Commands_Click() Dim db As DAO .Database Dim rs As DAO .Recordset Dim zc As DAO .Field Dim Countl As Integer,Count2 As Integer,Count3 As Integer Set db=CurrentDb() Set rs=db .OpenRecordset(”职工基本情况表“) Set zc=rs .Fields(”职称“) Countl=0 : Count2=0 : Count3=0 Do While Not【 】 Select Case zc Case Is=”教授“ Countl=Countl+1 CaseIs=”副教授“ Count2=Count2+1 Case Else Courit3=Count3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论