




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 VBA数据库编程,2,第9章 VBA数据库编程,本章要求 掌握常用的操作方法操作数据库对象 掌握ADO和DAO的概念及结构,并能使用它们访问数据库,3,9.1 VBA常用操作方法 一、打开和关闭操作在VBA中,操作主要有:1.打开窗体Docmd.OpenForm 格式: Docmd.OpenForm formname,view,filtername,wherecondition,datamode,windowmode参数说明:formname:字符串表达式,代表当前数据库中窗体的有效名称;view:为下列固有常量之一:acDesign,asFormDS,acNormal,acPrevi
2、ewfiltername:过滤查询的有效名称,主要是对窗体数据源数据进行过滤和筛选wherecondition:字符串表达式,不包含Where关键字的有效SQL Where子句datamode:为下列固有常量之一:acFormAdd,acFormEdit, acFormReadOnly ,acFormPropertySettingswindowmode:用于规定窗体的打开形式,为下列固有常量之一:acDialog, acHidden,acIcon,acWindowNormal,4,例:以对话框形式打开“登陆”窗体Docmd.Openform “登陆”,acDialog 2.打开报表Docmd.
3、OpenReport格式:Docmd.OpenReport reportname,view,filtername,wherecondition参数说明:reportname:字符串表达式,代表当前数据库中报表的有效名称view:为下列固有常量之一:acViewDesign,acViewNormal,acViewPreviewfiltername:字符串表达式,代表当前数据库中查询的有效名称wherecondition:字符串表达式,不包含Where关键字的有效SQL Where子句,5,例:预览“学生信息”报表Docmd.Openreport “学生信息”,acViwePreview 3.关闭
4、操作Docmd.Close格式:Docmd.Closeobjecttype,objectname,save参数说明:objiecttype:下列固有常量之一,acDataAccessPage,acDefault,acDiagram,acForm,acMacro,acModule,acQuery,acReport,acServerView,acStoredProcedure,acTable。objectname:字符串表达式,代表有效的对象名称。save:下列固有常量之一,acSaveNo,acSavePrompt,acSaveYes。由Docmd.Close命令参数可以看出,该命令可以广泛用于
5、关闭Access各种对象。省略所有参数的命令(Docmd.Close)可以关闭当前窗体。,6,例:关闭“登陆”窗体。Docmd.Close acForm,“登陆”关闭“登陆”报表。Docmd.Close acReport,“登陆”,7,二、输入框输入框主要用于显示提示,并要求用户输入文本。它在VBA中以函数形式调用。格式:InputBox(prompt,title,default,xpos,ypos,helpfile,context)参数说明:prompt:提示字符串。title:显示对话框中标题栏的字符串表达式。default:显示文本框中的字符串表达式。xpos:指定对话框左边距屏幕左边的
6、水平距离。ypos:指定对话框上边距屏幕上边的垂直距离。helpfile:为对话框提供上下文的帮助。context:某个主题的帮助上下文编号,8,注意:输入区缺省值有$返回字符类型,否则为数值类型。 提示文本如需换行,则用 Chr(13) + Chr(10) 将各行分开。 上图所示为inputbox的一个示例,调用语句如下:strName=InputBox(请输入你的姓名 + Chr(13) + Chr(10) + 然后单击确定, 输入框, 王晓明, 100, 100),9,三、消息框消息框用于在对话框中显示消息,等待用户单击按钮,并返回一个整型值。格式:MsgBox(Prompt,butto
7、ns,title,helpfile,context)参数说明:prompt:提示字符串title:显示对话框中标题栏的字符串表达式buttons:显示按钮的数目及形式,图标的样式等helpfile:为对话框提供上下文的帮助context:为某个主题的帮助上下文编号例:MsgBox“请输入学生姓名”,vbInformation,“学生信息”,10,根据用户所选按钮,函数返回1到7的整数值,其含义如下,Buttons选项取值说明,11,窗体上有两个命令按钮:显示(cmdDisplay)、测试(cmdTest)。事件过程的功能是:单击“测试”按钮,弹出消息框,如果单击消息框的“确定”按钮,隐藏窗体上
8、的“显示”按钮,如果单击消息框的“取消”按钮,关闭窗体。 Private Sub cmdTest_Click() Answer=_(“隐藏按钮”,vbOKCancel) If Answer=vbOK then cmdDisplay.Visible=_ Else DoCmd.Close End Sub,(2006.4),MsgBox,False,12,4.VBA编程数据验证使用窗体和数据访问页,每当保持记录数据时,所做的更改会保持到数据源表当中。在控件中的数据被改变之前或记录数据被更新之前会发生BeforeUpdate事件。通过创建窗体或控件的BeforeUpdate事件过程,可以实现对输入到窗
9、体控件中的数据进行各种验证。例如,数据类型验证、数据范围验证等。注意:控件BeforeUpdate事件过程是有参过程。通过设置其参数Cancel,可以确定BeforeUpdate事件是否会发生。将Cancel参数设置为True将取消BeforeUpdate事件。此外,在进行控件输入数据验证时,VBA提供了一些相关函数来帮助验证。,13,常用验证函数,14,5.计时事件在VBA中通过设置窗体的“计数器间隔TimerInterval”属性与添加“计时器触发(Timer)”事件来完成定时功能。其处理过程是:Timer事件每隔TimerInterval时间间隔就会被激发一次,并运行Timer事件过程来
10、响应。,15,9.2 VBA的数据库编程 VBA通过数据库引擎(Microsof jet)工具完成对数据库的访问,所谓数据库引擎其实是一组动态链接库(DLL),程序运行时被连接到VBA程序,而实现对数据库的访问功能。 1.VBA中提供了3种数据库访问接口: ODBC API:开放数据库互连应用编程接口。DAO:数据访问对象。ADO:Active数据对象 2.VBA访问的三种数据库类型:本地数据库:ACCESS外部数据库 ODBC数据库:如Oracle、SyBase、SQL Server等,16,3.数据库访问对象(DAO)DAO数据模型采用的是层次结构。,DBEngine数据库引擎为DAO模型
11、最上层对象,包含并管理其它对象。,17,4.ADO对象ADO数据对象模型,指定数据连接提供者,建立到数据源的连接。,可执行一个命令,如可执行SQL查询。一般用于表结构的修改。,可执行SQL查询返回一个记录集,并可对记录集进行修改、插入、删除操作。是ADO中最灵活的对象。,18,例:分别用DAO和ADO来完成对“教学管理.mdb”文件中“学生表”的学生年龄都加1的操作。(假设文件存放在E盘“考试中心教程”文件夹中),使用DAO技术: Sub SetAgePlus1() dim ws as DAO.Workspace 工作区对象 dim db as DAO.Database 数据库对象 dim r
12、s as DAO.Recordset 记录集对象 dim fd as DAO.Field 字段对象 set ws=DBEngine.Workspace(0) set db=ws.OpenDatabase(“e:考试中心教程教学管理.mdb”) 打开数据库 set rs=db.OpenRecordSet(“学生表”) 返回“学生表”记录集 set fd=rs.Fields(“年龄”) 设置“年龄”字段,19,Do while not rs.eof 对记录集用循环结构进行遍历 rs.edit 设置为“编辑”状态 fd=fd+1 年龄字段值加1 rs.update 更新记录,保存年龄值 rs.mov
13、enext 记录指针移动至下一条 Loop rs.close 关闭并回收对象变量 db.close set rs=Nothing 关闭并回收对象变量 set db=Nothing End sub,20,使用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 查询字符串 strconnect=(“e:
14、考试题目教学管理.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(“年龄”),21,对记录集用循环结构进行遍历 Do while not rs.eof fd=fd+1 年龄字段值加1 rs.update 更新记录,保存年龄值 rs.movenext
15、 记录指针移动至下一条 Loop 关闭并回收对象变量 rs.close db.close set rs=Nothing set db=Nothing End sub,22,ADO数据对象模型的相关要点(1)Recordset记录集对象记录指针的移动方法: MoveFirst 记录指针移到第一条记录 MoveNext 记录指针移到当前记录的下一条记录MovePrevious 记录指针移到当前记录的上一条记录 MoveLast 记录指针移到最后一条记录 (2)Recordset记录集的BOF和EOF属性用于判断记录指针是否处于有记录的正常位置 记录指针将指向最后一条记录之后,EOF属性为True 记录指针将指向第一条记录之前,BOF属性为True BOF和EOF属性的值均为True,表示记录集为空,23,5.几个特殊函数(1)Nz函数:将Null值转换为0,空字符串,及指定值 格式:Nz(表达式或字段属性值,指定值) 指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年住房公积金管理服务合作协议书
- 2025年休闲专用车及其零附件项目合作计划书
- 2025河南洛阳市汝阳县面向高等院校应届毕业生招聘教师70人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025贵州黔西南州望谟县消防救援大队招聘政府专职消防文员1人模拟试卷及答案详解(名校卷)
- 2025年南阳市第十一人民医院(南阳市第二人民医院鸭河医院)招聘专业技术人员50人模拟试卷及答案详解(全优)
- 2025年直型荧光灯管项目发展计划
- 工程工程合同样本5篇
- 2025年建筑防水卷材及制品项目建议书
- 2025年滕州市法院系统招聘真题
- 2025年上半年齐齐哈尔医学院附属第二医院公开招聘编制内工作人员20人考前自测高频考点模拟试题及答案详解参考
- 体验人工智能教学课件
- 鲁教版(五四学制)六年级地理上册《第一章地球》单元测试卷(含答案)
- 代理商激励方案(3篇)
- 小学国防教学课课件
- 小区物业规划方案(3篇)
- 口腔修复桩核冠病例汇报
- 山东省高级农艺师考试试题及答案
- cad上机考试试题及参考答案
- 思想道德与法治(2023年版)电子版教材第一章 领悟人生真谛 把握人生方向
- 教师培训系列讲座:人工智能赋能教育教学
- 2025急性心梗诊疗指南
评论
0/150
提交评论