您好,欢迎访问三七文档
二级ACCESS培训讲义第9章VBA数据库编程二级ACCESS培训讲义2第9章VBA数据库编程本章要求掌握常用的操作方法操作数据库对象掌握ADO和DAO的概念及结构,并能使用它们访问数据库二级ACCESS培训讲义39.1VBA常用操作方法一、打开和关闭操作在VBA中,操作主要有:1.打开窗体Docmd.OpenForm格式:Docmd.OpenFormformname[,view][,filtername][,wherecondition][,datamode][,windowmode]参数说明:formname:字符串表达式,代表当前数据库中窗体的有效名称;view:为下列固有常量之一:acDesign,asFormDS,acNormal,acPreviewfiltername:过滤查询的有效名称,主要是对窗体数据源数据进行过滤和筛选wherecondition:字符串表达式,不包含Where关键字的有效SQLWhere子句datamode:为下列固有常量之一:acFormAdd,acFormEdit,acFormReadOnly,acFormPropertySettingswindowmode:用于规定窗体的打开形式,为下列固有常量之一:acDialog,acHidden,acIcon,acWindowNormal二级ACCESS培训讲义4例:以对话框形式打开“登陆”窗体Docmd.Openform“登陆”,,,,,acDialog2.打开报表Docmd.OpenReport格式:Docmd.OpenReportreportname[,view][,filtername][,wherecondition]参数说明:reportname:字符串表达式,代表当前数据库中报表的有效名称view:为下列固有常量之一:acViewDesign,acViewNormal,acViewPreviewfiltername:字符串表达式,代表当前数据库中查询的有效名称wherecondition:字符串表达式,不包含Where关键字的有效SQLWhere子句二级ACCESS培训讲义5例:预览“学生信息”报表Docmd.Openreport“学生信息”,acViwePreview3.关闭操作Docmd.Close格式:Docmd.Close[objecttype,objectname][,save]参数说明:objiecttype:下列固有常量之一,acDataAccessPage,acDefault,acDiagram,acForm,acMacro,acModule,acQuery,acReport,acServerView,acStoredProcedure,acTable。objectname:字符串表达式,代表有效的对象名称。save:下列固有常量之一,acSaveNo,acSavePrompt,acSaveYes。由Docmd.Close命令参数可以看出,该命令可以广泛用于关闭Access各种对象。省略所有参数的命令(Docmd.Close)可以关闭当前窗体。二级ACCESS培训讲义6例:关闭“登陆”窗体。Docmd.CloseacForm,“登陆”关闭“登陆”报表。Docmd.CloseacReport,“登陆”二级ACCESS培训讲义7二、输入框输入框主要用于显示提示,并要求用户输入文本。它在VBA中以函数形式调用。格式:InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])参数说明:prompt:提示字符串。title:显示对话框中标题栏的字符串表达式。default:显示文本框中的字符串表达式。xpos:指定对话框左边距屏幕左边的水平距离。ypos:指定对话框上边距屏幕上边的垂直距离。helpfile:为对话框提供上下文的帮助。context:某个主题的帮助上下文编号二级ACCESS培训讲义8注意:输入区缺省值有$返回字符类型,否则为数值类型。提示文本如需换行,则用Chr(13)+Chr(10)将各行分开。上图所示为inputbox的一个示例,调用语句如下:strName=InputBox(请输入你的姓名+Chr(13)+Chr(10)+然后单击确定,输入框,王晓明,100,100)提示缺省值标题二级ACCESS培训讲义9三、消息框消息框用于在对话框中显示消息,等待用户单击按钮,并返回一个整型值。格式:MsgBox(Prompt[,buttons][,title][,helpfile,context])参数说明:prompt:提示字符串title:显示对话框中标题栏的字符串表达式buttons:显示按钮的数目及形式,图标的样式等helpfile:为对话框提供上下文的帮助context:为某个主题的帮助上下文编号例:MsgBox“请输入学生姓名”,vbInformation,“学生信息”二级ACCESS培训讲义10根据用户所选按钮,函数返回1到7的整数值,其含义如下Buttons选项取值说明二级ACCESS培训讲义11窗体上有两个命令按钮:显示(cmdDisplay)、测试(cmdTest)。事件过程的功能是:单击“测试”按钮,弹出消息框,如果单击消息框的“确定”按钮,隐藏窗体上的“显示”按钮,如果单击消息框的“取消”按钮,关闭窗体。PrivateSubcmdTest_Click()Answer=________(“隐藏按钮”,vbOKCancel)IfAnswer=vbOKthencmdDisplay.Visible=______ElseDoCmd.CloseEndSub(2006.4)MsgBoxFalse二级ACCESS培训讲义124.VBA编程数据验证使用窗体和数据访问页,每当保持记录数据时,所做的更改会保持到数据源表当中。在控件中的数据被改变之前或记录数据被更新之前会发生BeforeUpdate事件。通过创建窗体或控件的BeforeUpdate事件过程,可以实现对输入到窗体控件中的数据进行各种验证。例如,数据类型验证、数据范围验证等。注意:控件BeforeUpdate事件过程是有参过程。通过设置其参数Cancel,可以确定BeforeUpdate事件是否会发生。将Cancel参数设置为True将取消BeforeUpdate事件。此外,在进行控件输入数据验证时,VBA提供了一些相关函数来帮助验证。二级ACCESS培训讲义13常用验证函数函数名称返回值说明IsnumericBoolean值检验输入内容是否为数值IsdateBoolean值检验输入内容是否可以转换为日期IsnullBoolean值检验输入内容是否为空IsemptyBoolean值检验输入内容是否已经初始化IsarrayBoolean值检验输入内容是否为数组IserrorBoolean值检验输入内容是否为错误值IsobjectBoolean值检验输入内容是否表示对象变量二级ACCESS培训讲义145.计时事件在VBA中通过设置窗体的“计数器间隔TimerInterval”属性与添加“计时器触发(Timer)”事件来完成定时功能。其处理过程是:Timer事件每隔TimerInterval时间间隔就会被激发一次,并运行Timer事件过程来响应。二级ACCESS培训讲义159.2VBA的数据库编程VBA通过数据库引擎(Microsofjet)工具完成对数据库的访问,所谓数据库引擎其实是一组动态链接库(DLL),程序运行时被连接到VBA程序,而实现对数据库的访问功能。1.VBA中提供了3种数据库访问接口:ODBCAPI:开放数据库互连应用编程接口。DAO:数据访问对象。ADO:Active数据对象2.VBA访问的三种数据库类型:本地数据库:ACCESS外部数据库ODBC数据库:如Oracle、SyBase、SQLServer等二级ACCESS培训讲义163.数据库访问对象(DAO)DAO数据模型采用的是层次结构。DBEngineWorkspaceDatabaseRecordSetFieldErrorQueryDefDBEngine数据库引擎为DAO模型最上层对象,包含并管理其它对象。二级ACCESS培训讲义174.ADO对象ADO数据对象模型Error(s)ConnectionCommandRecordSetField(s)指定数据连接提供者,建立到数据源的连接。可执行一个命令,如可执行SQL查询。一般用于表结构的修改。可执行SQL查询返回一个记录集,并可对记录集进行修改、插入、删除操作。是ADO中最灵活的对象。二级ACCESS培训讲义18例:分别用DAO和ADO来完成对“教学管理.mdb”文件中“学生表”的学生年龄都加1的操作。(假设文件存放在E盘“考试中心教程”文件夹中)使用DAO技术:SubSetAgePlus1()dimwsasDAO.Workspace‘工作区对象dimdbasDAO.Database’数据库对象dimrsasDAO.Recordset’记录集对象dimfdasDAO.Field‘字段对象setws=DBEngine.Workspace(0)setdb=ws.OpenDatabase(“e:\考试中心教程\教学管理.mdb”)’打开数据库setrs=db.OpenRecordSet(“学生表”)‘返回“学生表”记录集setfd=rs.Fields(“年龄”)’设置“年龄”字段二级ACCESS培训讲义19Dowhilenotrs.eof‘对记录集用循环结构进行遍历rs.edit’设置为“编辑”状态fd=fd+1‘年龄字段值加1rs.update’更新记录,保存年龄值rs.movenext‘记录指针移动至下一条Looprs.close‘关闭并回收对象变量db.closesetrs=Nothing‘关闭并回收对象变量setdb=NothingEndsub二级ACCESS培训讲义20使用ADO技术:SubSetAgePlus1()dimcnasNewADODB.Connection‘连接对象dimrsasNewADODB.RecordSet’记录集对象dimfsasADODB.Field’字段对象dimstrConnectasString‘连接字符串dimstrSQLasString’查询字符串strconnect=(“e:\考试题目\教学管理.mdb”)’设置连接数据库cn.Provider=“Microsoft.jet.oledb.4.0”‘设置数据提供者cn.openstrconnect’打开与数据源的连接strSQL=“select年龄from学生表”‘设置查询语句rs.openstrSQL,cn,adOpenDynamic,adLockOptimistic,adCmdTextsetfd=rs.Fields(“年龄”)二级ACCESS培训讲义21‘对记录集用循环结构进行遍历Dowhilenotrs.eoffd=fd+1‘年龄字段值加1rs.update’更新记录,保存年龄值rs.movenext‘记录指针移动至下一条Loop‘关闭并回收对象变量rs.closedb.closesetrs=Nothingsetdb=NothingEndsub二级ACCESS培训讲义22ADO数据对象模型的相关要点(1)Recordset记录集对象记录指针的移动方法:MoveFirst记录指针移到第一条记录MoveNext记录指针移到当前记录的下一条记录☆☆MovePrevious记录指针移到当前记录的上一条记录MoveLast记录指针移到最后一条记录(2)Recordset记录集的BOF和EOF属性用于判断记录指针是否处于有记录的正常位置记录指针将指向最后一条记录之后,EOF属性为True☆☆记录指针将指向第一条记录之前,BOF属性为True☆☆BOF和EOF属性的值均为True,表示记录集为空二级ACCESS培训讲义235.几个特殊函数(1)Nz
本文标题:第9章_VBA数据库编程_(未来教育_全国计算机等级考试_二级Access教程_配套课件)
链接地址:https://www.777doc.com/doc-2199715 .html