子程序是执行一系列操作(运算)的过程。通俗地说,是能执行特定功能的语句块。使用过程的最大优点在于:在一个地方写了一个功能模块之后,如果要在其他地方实现同样的功能,只要直接调用这些代码即可,即不必再写一遍。如果发现功能模块有错误,也不必在整个程序中查找错误,然后逐个改正、逐句调试。而只需改正过程和函数,调试成功时,程序中所有引用该过程或函数的地方都将得到维护。 用Sub语句可以声明一个新的过程、过程所接受的参数以及该过程的代码。声明过程的语法形式如下: [Public | Private][Static]Sub子程序名([<参数>])[As数据类型] [<一组语句>] [Exit Sub] [<一组语句>] End Suh 内容任选其一。 使用Public关键字可以使这个过程适用于所有模块中的所有其他过程,用Private关键字可以使该子程序只适用于同一模块中的其他过程。Exit Sub语句的功能是跳出过程。 下面是一个声明和调用子程序的例子。 通常,在一个应用程序中会遇到大量的打开窗口的操作。本例利用Access的关闭窗体命令DoCmd.OpenForm编写一个过程,其功能为:打开一个指定名称的窗体,并加入错误捕获。 Sub打开窗体(stDocName As String) ’打开窗体过程,参数stDocName为需要打开的窗体名称 On Error GoTo Err一打开窗体 ’出错则转入错误处理程序 DoCmd.OpenForm stDocName ’打开指定窗体 Exit一打开窗体: Exit Sub Err打开窗体: ’如果出错则弹出错误消息,并结束打开动作 MsgBox Err.Description Resume Exit打开窗体 End Sub 如果需要调用该过程打开名为“窗体1”的窗体,则只需在相应地方键入: 打开窗体("窗体1") 其中,声明过程时的语句 Sub打开窗体(stDocName As String)中的参数stDOCName称为形式参数或虚拟参数,调用时语句中的“窗体1”,称为实际参数。在调用子程序时,实际参数和形式参数将互相传递数据
|