资源描述
全国计算机等级考试Access数据库程序设计(二级),万红波烟台大学,VBA编程基础,常量、变量、运算符和表达式;流程控制语句;过程调用和参数传递;常用操作的实现方法;VBA的数据库编程;,3.1子过程的定义,Sub子过程名(形参)ExitSubEndSub,Public:公有过程,说明该过程可以被其他模块的过程调用,一般用在标准模块中,用来声明公用的过程;Private:私有过程,只能被模块内部的过程进行调用;,SubMyOpenForm(strFormNameAsString)IfstrFormName=ThenMsgBox打开窗体名称不能为空!,vbCritical,警告ExitSubEndIfDoCmd.OpenFormstrFormNameEndSub,3.1子过程的调用,两种调用方法:Call子过程名(,)子过程名,3.2函数过程的定义与调用,Function函数过程名()As数据类型ExitFunctionEndFunction,3.2函数过程的定义与调用,FunctionArea(RAsSingle)AsSingleIfR=0ThenMsgBox“必须是正数,vbCritical,警告Area=0ExitFunctionEndIfArea=3.14*R*REndFunction,调用函数DimrAsSingleDimsAsSingles=Area!(5)s=Area(5),3.3形式参数的写法,定义过程的时候可以设置一个或多个形式参数,形式参数的默认类型是VariantSubMySub(a,b)为形式参数指明类型SubMySub(aAsInteger,sAsString),3.3形式参数的写法,根据形式参数和实际参数的结合和传递方式:传值调用(ByVal):过程中对形式参数的修改,不影响实际参数;传址调用(ByRef):过程中对形式参数的修改,影响实际参数;默认是传址调用(ByRef),形式参数中说明参数的传递方式SubMySub(ByValaAsInteger,ByRefsAsString),例子,PublicSubSwapByVal(ByValaAsInteger,ByValbAsInteger)DimtAsIntegert=aa=bb=tEndSubPublicSubSwapByRef(ByRefaAsInteger,ByRefbAsInteger)DimtAsIntegert=aa=bb=tEndSub,3.3形式参数的写法,可选参数(Optional)可以设置可选参数的默认值,PublicSubMyMsgBox(promptAsString,OptionaltitleAsString=警告)MsgBoxprompt,vbCritical,titleEndSub,3.3形式参数的写法,可变参数:如果有多个形式参数,可变参数必须放在形式参数的最后,可变参数实际上是Variant类型的数组,PublicFunctionMySum(ParamArrayvar()DimiAsIntegerDimsumAsIntegerFori=LBound(var)ToUBound(var)sum=sum+var(i)NextiMySum=sumEndFunction,练习题,若要在子过程Proc1调用后返回两个变量的结果,下列过程定义语句中有效的是A)SubProc1(n,m)B)SubProc1(ByValn,m)C)SubProc1(n,ByValm)D)SubProc1(ByValn,ByValm),
展开阅读全文