《Access15过程调用与参数传递.ppt》由会员分享,可在线阅读,更多相关《Access15过程调用与参数传递.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第1515讲讲 VBAVBA的过程调用与变量作用域的过程调用与变量作用域:n复习:标准模块与类模块复习:标准模块与类模块复习:标准模块与类模块复习:标准模块与类模块n n模块由过程组成:模块由过程组成:模块由过程组成:模块由过程组成:n n一个模块有一个模块有一个模块有一个模块有1 1 1 1到多个过程组成:所有模块都有到多个过程组成:所有模块都有到多个过程组成:所有模块都有到多个过程组成:所有模块都有一个声明区一个声明区一个声明区一个声明区(过程过程过程过程),在模块的最前面,用来,在模块的最前面,用来,在模块的最前面,用来,在模块的最前面,用来定义下面过程要用到的变量和字符比较方式定义
2、下面过程要用到的变量和字符比较方式定义下面过程要用到的变量和字符比较方式定义下面过程要用到的变量和字符比较方式等:等:等:等:P257P257P257P257OptionBase0|1声明模块中数组下标的初始值,声明模块中数组下标的初始值,默认为默认为0OptionCompareDatabase声明模块中字符串比较的方法。声明模块中字符串比较的方法。用数据库的区域用数据库的区域ID确定排序级别确定排序级别进行比较。进行比较。OptionExplicit强制显示声明模块中的所有变量。强制显示声明模块中的所有变量。2009年1 第第1515讲讲 子过程与函数过程子过程与函数过程SubSub(子程序
3、)过程(子程序)过程(子程序)过程(子程序)过程ppSubSub过程也称为子程序,它一般执行某种操作或一系列运过程也称为子程序,它一般执行某种操作或一系列运过程也称为子程序,它一般执行某种操作或一系列运过程也称为子程序,它一般执行某种操作或一系列运算,但没有返回值。用户可以自己创建算,但没有返回值。用户可以自己创建算,但没有返回值。用户可以自己创建算,但没有返回值。用户可以自己创建SubSub过程或使用过程或使用过程或使用过程或使用AccessAccess已经创建好的事件过程模块。已经创建好的事件过程模块。已经创建好的事件过程模块。已经创建好的事件过程模块。pp数据库的每一个窗体和报表都有内置
4、的窗体模块或报表模数据库的每一个窗体和报表都有内置的窗体模块或报表模数据库的每一个窗体和报表都有内置的窗体模块或报表模数据库的每一个窗体和报表都有内置的窗体模块或报表模块。这些模块包含事件过程模板,用户可以在其中添加自块。这些模块包含事件过程模板,用户可以在其中添加自块。这些模块包含事件过程模板,用户可以在其中添加自块。这些模块包含事件过程模板,用户可以在其中添加自己的代码。当窗体、报表或在其上的控件中发生相应的事己的代码。当窗体、报表或在其上的控件中发生相应的事己的代码。当窗体、报表或在其上的控件中发生相应的事己的代码。当窗体、报表或在其上的控件中发生相应的事件时,件时,件时,件时,Acce
5、ssAccess将自动运行这些代码。例如,可以在将自动运行这些代码。例如,可以在将自动运行这些代码。例如,可以在将自动运行这些代码。例如,可以在“学生学生学生学生信息登记信息登记信息登记信息登记”窗体上添加一个窗体上添加一个窗体上添加一个窗体上添加一个“添加记录添加记录添加记录添加记录”的按钮,并在该的按钮,并在该的按钮,并在该的按钮,并在该按钮的单击事件中写上相应的代码,就可以为按钮的单击事件中写上相应的代码,就可以为按钮的单击事件中写上相应的代码,就可以为按钮的单击事件中写上相应的代码,就可以为“学生信息学生信息学生信息学生信息”表增加记录。表增加记录。表增加记录。表增加记录。2009年2
6、 Sub Sub 质数质数质数质数1to100()1to100()Dim i As Integer,j As Integer,k As Integer Dim i As Integer,j As Integer,k As Integer k=1 k=1 For i=1 To 100 For i=1 To 100 For j=2 To i-1 For j=2 To i-1 If(i/j)=(i j)Then Exit For If(i/j)=(i j)Then Exit For Next j Next j If j=i Then If j=i Then Debug.Print i,Debug.P
7、rint i,k=k+1 k=k+1 End If End If If k=7 Then If k=7 Then k=1 k=1 Debug.Print Debug.Print End If End If Next i Next iEnd SubEnd Sub2009年3 Sub Sub 三角形三角形三角形三角形()()Dim i As Integer,j As Integer Dim i As Integer,j As Integer Debug.Print Debug.Print For i=1 To 9 For i=1 To 9 Debug.Print Space(15-i);Debug
8、.Print Space(15-i);For j=1 To i*2-1 For j=1 To i*2-1 Debug.Print*;Debug.Print*;Next j Next j Debug.Print Debug.Print Next i Next iEnd SubEnd Sub2009年4 Sub Sub 循环循环循环循环()()Dim x As Integer,a As Integer,b As Integer Dim x As Integer,a As Integer,b As Integer x=8 x=8 For a=0 To 1 For a=0 To 1 Do While
9、b 25 Do While b 25 b=b+a+x b=b+a+x Loop Loop Next Next Debug.Print b=&b Debug.Print b=&b MsgBox b=&b MsgBox b=&bEnd SubEnd Sub2009年5 第第1515讲讲 子过程与函数过程子过程与函数过程n nFunctionFunction(函数)过程(函数)过程(函数)过程(函数)过程n nFunctionFunction过程能够返回一个计算结果。过程能够返回一个计算结果。过程能够返回一个计算结果。过程能够返回一个计算结果。AccessAccess提供了许多提供了许多提供了许多提
10、供了许多内置的标准函数以供程序直接调用。例如,内置的标准函数以供程序直接调用。例如,内置的标准函数以供程序直接调用。例如,内置的标准函数以供程序直接调用。例如,Date()Date()函数返函数返函数返函数返回当前机器的系统日期。除了系统提供的内置函数以外,回当前机器的系统日期。除了系统提供的内置函数以外,回当前机器的系统日期。除了系统提供的内置函数以外,回当前机器的系统日期。除了系统提供的内置函数以外,用户也可以自定义函数。编辑一个用户也可以自定义函数。编辑一个用户也可以自定义函数。编辑一个用户也可以自定义函数。编辑一个FunctionFunction过程的过程就过程的过程就过程的过程就过程
11、的过程就是用户自己定义一个函数的过程。是用户自己定义一个函数的过程。是用户自己定义一个函数的过程。是用户自己定义一个函数的过程。n nFunctionFunction过程的优点就是程序可以利用函数的返回值在表过程的优点就是程序可以利用函数的返回值在表过程的优点就是程序可以利用函数的返回值在表过程的优点就是程序可以利用函数的返回值在表达式中,以便对语句或方法中的一些属性进行设置,或在达式中,以便对语句或方法中的一些属性进行设置,或在达式中,以便对语句或方法中的一些属性进行设置,或在达式中,以便对语句或方法中的一些属性进行设置,或在筛选、查询的准则表达式中使用。筛选、查询的准则表达式中使用。筛选、
12、查询的准则表达式中使用。筛选、查询的准则表达式中使用。2009年6 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n函数过程函数过程:格式格式1 1:FunctionFunction()As)As =EndFunctionEndFunctionFunctionA(x)DimiAsIntegerA=1Fori=2ToxA=A*iNextEndFunctionn计算阶乘的函数过程计算阶乘的函数过程FunctionFac(xAsInteger)AsLongFunctionFac(xAsInteger)AsLong 函数函数函数函数FacFac的参数的参数的参数的参数x
13、x接受接受接受接受i i传递过来的值传递过来的值传递过来的值传递过来的值DimiAsInteger,mAsLongDimiAsInteger,mAsLongm=1m=1Fori=1ToxFori=1Toxm=m*im=m*iNextNextFac=mFac=m 将阶乘将阶乘将阶乘将阶乘mm的值赋给的值赋给的值赋给的值赋给Fac,Fac,用来返回计算结果用来返回计算结果用来返回计算结果用来返回计算结果EndFunctionEndFunction2009年7 Sub aa()Sub aa()Debug.Print Fac(4)Debug.Print Fac(4)End SubEnd Sub_Fun
14、ction Fac(x As Integer)As Long Function Fac(x As Integer)As Long 函数函数函数函数FacFac的参数的参数的参数的参数x x接受接受接受接受4 4传递过来的值传递过来的值传递过来的值传递过来的值 Dim i As Integer,m As Long Dim i As Integer,m As Long m=1 m=1 For i=1 To x For i=1 To x m=m*i m=m*i Next Next Fac=m Fac=m 将阶乘将阶乘将阶乘将阶乘mm的值赋给的值赋给的值赋给的值赋给Fac,Fac,用来返回计算结果用来
15、返回计算结果用来返回计算结果用来返回计算结果End FunctionEnd Function2009年8 第第1515讲讲 VBAVBA的过程调用的过程调用n过程分类与过程调用过程分类与过程调用:格式格式1 1:(无参标准过程无参标准过程)SubSub()()1EndSubEndSub调用语句:调用语句:调用语句:调用语句:CallCall 说明:可在子过程的语句序列中,用Call语句调用另一个子过程;子过程已定义的变量,可在另一个子过程中引用或修改。2009年9 在过程中,用Dim 或 Static来声明的局部变量其作用域只限在本过程过程。两者不同之处在于用Dim语句声明的变量在退出过程时变
16、量的值被清除,而用Static声明的变量其值在退出过程时还保持有效。这样,用Static声明的变量其值就可以一直保留。用Static声明的变量又称为静态变量。在过程中未声明就使用的变量默认为是过程级变量过程级变量。在模块的申明区模块的申明区,用Private来声明的局部变量其作用域只限在本模块模块。是模块级变量模块级变量,用Public声明的变量其作用域为整个VB应用程序,是全局变量全局变量。第第1515讲讲 变量作用域变量作用域n变量作业域变量作业域:格式格式1 1:(静态变量定义静态变量定义)StaticStaticASAS,格式格式2 2:(静态变量定义静态变量定义)DimDimASAS
17、,说明:说明:2009年10 Sub Sub 过程调用过程调用过程调用过程调用()()Dim x As Integer,b As Integer Dim x As Integer,b As Integer Static a As Integer Static a As Integer x=8 x=8 Debug.Print x=,x,a=,a,b=,b Debug.Print x=,x,a=,a,b=,b Call Call 子过程子过程子过程子过程 MsgBox x=&x&a=&a&b=&b MsgBox x=&x&a=&a&b=&bEnd SubEnd Sub_Sub Sub 子过程子过程
18、子过程子过程()()x=x+8 x=x+8 a=a+2 10 a=a+2 10 b=a/2 b=a/2 c=3 c=3 Debug.Print x=,c,a=,a,b=,b Debug.Print x=,c,a=,a,b=,bEnd SubEnd Sub2009年11 第第1515讲讲 VBAVBA的过程调用的过程调用_ _形参与实参形参与实参形参与实参形参与实参n过程分类与过程调用过程分类与过程调用:格式格式1 1:(无参标准过程无参标准过程)SubSub()()1EndSubEndSub调用语句:调用语句:调用语句:调用语句:CallCall 说明:可在子过程的语句序列中,用Call语句调
19、用另一个子过程;子过程已定义的变量,可在另一个子过程中引用或修改。格式格式1 1:(有参标准过程有参标准过程)SubSub()1EndSubEndSub调用语句:调用语句:调用语句:调用语句:CallCall()说明:在子过程的语句序列中,用Call语句调用另一个子过程时;实参必须和形参个数相同,类型相同;有按位置传递和按值传递两种方式。2009年12 按值传递参数:按值传递参数:按值传递参数指的是形参与实参占用按值传递参数指的是形参与实参占用不同的内存单元,是两个不同的变量。这种传递方法是不同的内存单元,是两个不同的变量。这种传递方法是实参将其值赋给形参,形参的变化不会影响到实参的值。实参将
20、其值赋给形参,形参的变化不会影响到实参的值。要按值传递,必须在形参前加要按值传递,必须在形参前加ByValByVal关键字。关键字。第第15讲讲VBA的过程调用中的的过程调用中的参数传递参数传递参数传递参数传递按地址传递参数:按地址传递参数:按地址传递参数的方式无论实参与按地址传递参数的方式无论实参与形参的名字是否相同,在内存中它们都占用相同的存形参的名字是否相同,在内存中它们都占用相同的存储单元。当子过程的形参值发生变化时,主过程中的储单元。当子过程的形参值发生变化时,主过程中的实参值也发生相应的变化。要显式地指定是按地址传实参值也发生相应的变化。要显式地指定是按地址传递,可在形参前加递,可
21、在形参前加ByRefByRef关键字。关键字。VBAVBA中默认的参数传中默认的参数传递方式是按地址传递,所以这个递方式是按地址传递,所以这个ByRefByRef也可以省略。也可以省略。2009年13 Dim a As IntegerDim a As IntegerOption ExplicitOption ExplicitSub area()Sub area()Dim x As Integer,y As Integer,z As Integer Dim x As Integer,y As Integer,z As Integer x=10:y=10 x=10:y=10 Call calcu(
22、x,y,z)Call calcu(x,y,z)Debug.Print x&*&y&=&z Debug.Print x&*&y&=&zEnd SubEnd SubSub calcu(ByRef a As Integer,b As Integer,c As Sub calcu(ByRef a As Integer,b As Integer,c As Integer)Integer)c=a*b c=a*bEnd SubEnd Sub2009年14 Sub first()Sub first()Dim x As Integer,y As Integer Dim x As Integer,y As Int
23、eger x=10:y=20 x=10:y=20 Debug.Print Debug.Print 调用调用调用调用second(x,y)second(x,y)前:前:前:前:&x=&x&x=&x&y=&yy=&y Call second(x,y)Call second(x,y)Debug.Print Debug.Print 调用调用调用调用second(x,y)second(x,y)后:后:后:后:&x=&x&x=&x&y=&yy=&yEnd SubEnd SubSub second(ByVal a As Integer,ByVal b As Integer)Sub second(ByVal
24、a As Integer,ByVal b As Integer)Debug.Print second(x,y)Debug.Print second(x,y)函数中,函数中,函数中,函数中,A,BA,B赋值前:赋值前:赋值前:赋值前:&a=&a=&a&b=&b&a&b=&b a=33:b=44 a=33:b=44 Debug.Print second(x,y)Debug.Print second(x,y)函数中,函数中,函数中,函数中,A,BA,B赋值后:赋值后:赋值后:赋值后:&a=&a=&a&b=&b&a&b=&bEnd SubEnd Sub2009年15 第第1313讲讲 AccessAc
25、cess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:对象对象(Object)(Object):对象是一些相关的变量和方法的软件集对象是一些相关的变量和方法的软件集合。在程序设计中需要处理的事物均可以看成一个对合。在程序设计中需要处理的事物均可以看成一个对象。是一种将数据和操作过程结合在一起的数据结构。象。是一种将数据和操作过程结合在一起的数据结构。是应用程序的基本元素。例:我们创建的窗体或窗体是应用程序的基本元素。例:我们创建的窗体或窗体上的任何一个具体控件。上的任何一个具体控件。类类(Class)(Class)(Class)(Class):类是具有共同属性、共同
26、行为的对象的集类是具有共同属性、共同行为的对象的集类是具有共同属性、共同行为的对象的集类是具有共同属性、共同行为的对象的集合。它是对客观对象的抽象和归纳。因此,类又可以合。它是对客观对象的抽象和归纳。因此,类又可以合。它是对客观对象的抽象和归纳。因此,类又可以合。它是对客观对象的抽象和归纳。因此,类又可以认为是定义同一类所有对象的变量和方法的集合。例认为是定义同一类所有对象的变量和方法的集合。例认为是定义同一类所有对象的变量和方法的集合。例认为是定义同一类所有对象的变量和方法的集合。例如,命令按钮、文本框、组合框等。如,命令按钮、文本框、组合框等。如,命令按钮、文本框、组合框等。如,命令按钮、
27、文本框、组合框等。2009年16 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:属性属性(Property)(Property):属性是对象具有的物理性质及特征的描述。通属性是对象具有的物理性质及特征的描述。通过对属性的设置,可以设置对象的外观和某方面的状态。在过对属性的设置,可以设置对象的外观和某方面的状态。在AccessAccess中,窗体、报表、和控件等都是对象,而窗体的大小、中,窗体、报表、和控件等都是对象,而窗体的大小、控件的位置等都是对象的属性。为了使所编的软件在运行的时控件的位置等都是对象的属性。为了使所编的软
28、件在运行的时候各种界面看起来更美观,我们必须在设计软件时对每个对象候各种界面看起来更美观,我们必须在设计软件时对每个对象的有关属性做适当的设置。所谓的有关属性做适当的设置。所谓 有关有关,就是对于一个对象来,就是对于一个对象来说,在一个软件中只有部分与这个软件有关的属性需要设置,说,在一个软件中只有部分与这个软件有关的属性需要设置,而大部分可能不需要设置,只需使用它们隐含的设置就行了,而大部分可能不需要设置,只需使用它们隐含的设置就行了,而同一个对象在另一个地方可能需要设置的属性就又不同了。而同一个对象在另一个地方可能需要设置的属性就又不同了。对于属性的设置,有些只需用鼠标做适当的拖动即可,对
29、于属性的设置,有些只需用鼠标做适当的拖动即可,如长、宽、放的位置等,当然它们也可以在属性窗口中设置,如长、宽、放的位置等,当然它们也可以在属性窗口中设置,另一些则必须在属性窗口中进行设置,如字体、颜色、标题等。另一些则必须在属性窗口中进行设置,如字体、颜色、标题等。而有些就只能在程序中设置。而有些就只能在程序中设置。2009年17 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:方法方法(Method)(Method):也叫也叫“方法程序方法程序”。它描述了对象的行。它描述了对象的行为。对象的方法就是指对象完成某种任务所执行的
30、操为。对象的方法就是指对象完成某种任务所执行的操作。这些方法可以在我们需要的时候调用。作。这些方法可以在我们需要的时候调用。在在VBAVBA中,调用属性和方法的格式如下:中,调用属性和方法的格式如下:.(,.2,.)2009年18 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:事件事件(Event):事件就是可能会发生在对象上的事情,事件就是可能会发生在对象上的事情,也也可以说我们对对象所做的操作可以说我们对对象所做的操作(或者系统对某个对象的或者系统对某个对象的操作操作)。它是。它是Access预先定义好的能够被对象识别的
31、预先定义好的能够被对象识别的动作。动作。如单击鼠标如单击鼠标(Click)事件、双击鼠标事件、双击鼠标(DblClick)事件、移动鼠标事件、移动鼠标(MouseMove)事件、加载事件、加载(Load)事件等等。事件等等。事件过程:事件过程:为了使得对象在某一事件发生时能够做出所需要的为了使得对象在某一事件发生时能够做出所需要的反应,我们就必须针对这一事件编出相应的程序代码来完成这反应,我们就必须针对这一事件编出相应的程序代码来完成这一目标。如果一个对象的某个事件被编写了相应的代码,当这一目标。如果一个对象的某个事件被编写了相应的代码,当这一事件发生时(如按钮被按动),相应的程序段就被激活,
32、并一事件发生时(如按钮被按动),相应的程序段就被激活,并开始执行,如这一事件不发生,则这段程序就不会运行。为这开始执行,如这一事件不发生,则这段程序就不会运行。为这个事件而编写的代码就称为事件过程。而对于没有编写事件过个事件而编写的代码就称为事件过程。而对于没有编写事件过程的事件,即使发生也不会有任何反应。程的事件,即使发生也不会有任何反应。2009年19 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:在在AccessAccess中,事件过程总是与窗体、报表或控件等对象相关联的。中,事件过程总是与窗体、报表或控件等对象相关联
33、的。在在VBEVBE窗口中,窗口中,通过通过“对象浏对象浏览器览器”窗口,窗口,可以查看到各可以查看到各种库中的类、种库中的类、由类创建对象由类创建对象以及对象的属以及对象的属性、事件和方性、事件和方法等。法等。2009年20 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:AccessAccess中的对象:我们已学过了表、查询、窗体、报表、数据访问中的对象:我们已学过了表、查询、窗体、报表、数据访问页、宏和模块;其中页、宏和模块;其中,在窗体、报表、数据访问页中创建的控件在窗体、报表、数据访问页中创建的控件也是也是Acces
34、sAccess的对象;的对象;此外,此外,Access Access 中还有许多其它对象可用于您的中还有许多其它对象可用于您的 Access Access 应用程序中,其中最重要的是应用程序中,其中最重要的是 DoCmd DoCmd、CurrentProjectCurrentProject、CurrentDataCurrentData、CodeProjectCodeProject、CodeDataCodeData和和Screen Screen 等对象;它们等对象;它们的主要功能就是:通过调用包含在其内部的方法,实现在的主要功能就是:通过调用包含在其内部的方法,实现在VBAVBA编编程中对程中对
35、AccessAccess数据库的操作;下面重点介绍数据库的操作;下面重点介绍DoCmdDoCmd对象及其它对对象及其它对象的学习方法。象的学习方法。2009年21 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:DoCmdDoCmd对象:学对象:学习方法;按习方法;按Crtl+F11Crtl+F11进进入入VBAVBA窗口,窗口,选【视图】选【视图】菜单下的【菜单下的【对象浏览器对象浏览器】打开对象】打开对象浏览器窗口:浏览器窗口:1 1 1 12 2 2 23 3 3 34 4 4 45 5 5 56 6 6 6按按按按F1
36、F1F1F1键查键查键查键查阅帮阅帮阅帮阅帮助信助信助信助信息息息息2009年22 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息参阅应用于参阅应用于示例示例特性特性在在VisualBasic中,中,OpenForm方法执行方法执行OpenForm操作操作expression.OpenForm(FormName,View,FilterName,WhereCondition,DataMode,WindowMode,OpenArgs)expression必需。返回必需。
37、返回“应用于应用于”列表中的一个对象的表列表中的一个对象的表达式。达式。2009年23 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息参阅应用于参阅应用于示例示例特性特性FormName必需必需Variant型。型。字符串表达式字符串表达式(字符串表达式:(字符串表达式:任一求值为一列连续字符的表达式。表达式的元素可以是:返任一求值为一列连续字符的表达式。表达式的元素可以是:返回字符串或字符串回字符串或字符串Variant(VarType8)的函数;字符串字面值、的
38、函数;字符串字面值、常量、变量或常量、变量或Variant。),。),表示当前数据库中表示当前数据库中窗体窗体(窗体:窗体:Access数据库对象之一,可以在这种对象上放置控件,用于数据库对象之一,可以在这种对象上放置控件,用于执行操作,或在字段中输入、显示、编辑数据。)执行操作,或在字段中输入、显示、编辑数据。)的有效名称。的有效名称。如果在某如果在某类库数据库类库数据库(类库数据库:可以从任意应用程序中调类库数据库:可以从任意应用程序中调用的过程和数据库对象的集合。为了使用库中的项,必须先建用的过程和数据库对象的集合。为了使用库中的项,必须先建立从当前数据库到类库数据库的引用。)立从当前数
39、据库到类库数据库的引用。)中执行包含中执行包含OpenForm方法的方法的VisualBasic代码,则代码,则MicrosoftAccess将先在该类库数据库中查找具有相同名称的窗体,然后再在当将先在该类库数据库中查找具有相同名称的窗体,然后再在当前数据库中查找。前数据库中查找。2009年24 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息View可选可选AcFormView。AcFormView可以是下列可以是下列AcFormView常量之一:常量之一:acDe
40、signacFormDSacFormPivotChartacFormPivotTableacNormal默认。在默认。在“窗体窗体”视图视图(“窗体窗体”视图:一个显示窗视图:一个显示窗体以便显示或接受数据的窗口。体以便显示或接受数据的窗口。“窗体窗体”视图是添加和修改表视图是添加和修改表中数据的主要方式。在该视图中还可以更改窗体的设计。)中数据的主要方式。在该视图中还可以更改窗体的设计。)中中打开窗体。打开窗体。acPreview如果将该参数留空,将假定为默认常量如果将该参数留空,将假定为默认常量(acNormal)。WhereCondition可选可选Variant型。字符串表达式,表示不
41、包括型。字符串表达式,表示不包括词词WHERE的有效的有效SQLWHERE子句子句(WHERE子句:子句:SQL语句中用于指定哪部分记录被检索的语素。)语句中用于指定哪部分记录被检索的语素。)。2009年25 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息FilterName可选可选Variant型。字符串表达式,表示当前数据库型。字符串表达式,表示当前数据库中中查询查询(查询:有关表中所存数据的问题,或要对数据执行操查询:有关表中所存数据的问题,或要对数据执行操作
42、的请求。查询可以将多个表中的数据放在一起,以作为窗体、作的请求。查询可以将多个表中的数据放在一起,以作为窗体、报表或数据访问页的数据源。)报表或数据访问页的数据源。)的有效名称。的有效名称。DataMode可选可选AcFormOpenDataMode。窗体的数据输入模式。窗体的数据输入模式。它只应用于在它只应用于在“窗体窗体”视图或视图或“数据表数据表”视图中打开的窗体。视图中打开的窗体。AcFormOpenDataMode可以是这些可以是这些AcFormOpenDataMode常常量之一:量之一:acFormAdd用户可以添加新记录,但是不能编辑现用户可以添加新记录,但是不能编辑现有记录。有
43、记录。acFormEdit用户可以编辑现有记录和添加新记录。用户可以编辑现有记录和添加新记录。acFormPropertySettings默认默认acFormReadOnly用户只能查用户只能查看记录。看记录。如果将该参数留空(将假定为默认常量,即如果将该参数留空(将假定为默认常量,即acFormPropertySettings),则),则MicrosoftAccess将在由窗将在由窗体的体的AllowEdits、AllowDeletions、AllowAdditions和和DataEntry属性设置的数据模式中打开窗体。属性设置的数据模式中打开窗体。2009年26 第第1313讲讲 Acce
44、ssAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息WindowMode可选,可选,AcWindowMode。打开窗体时所采用的。打开窗体时所采用的窗口模式。窗口模式。AcWindowMode可以是下列可以是下列AcWindowMode常量之一:常量之一:acDialog窗体的窗体的Modal和和PopUp属性设为属性设为“是是”。acHidden窗体隐藏。窗体隐藏。acIcon打开窗体并在打开窗体并在Windows工具工具栏中最小化。栏中最小化。acWindowNormal默认值默认值窗体采用它
45、的属性窗体采用它的属性所设置的模式所设置的模式如果将该参数留空,将假定为默认常量如果将该参数留空,将假定为默认常量(acWindowNormal)。2009年27 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息OpenArgs可选可选Variant型。字符串表达式,用于设置窗体的型。字符串表达式,用于设置窗体的OpenArgs属性。而后该设置可用于属性。而后该设置可用于窗体模块窗体模块(窗体模块:该窗体模块:该模块中包含在指定的窗体或其控件上事件发生时触发的所有事模
46、块中包含在指定的窗体或其控件上事件发生时触发的所有事件过程的代码。)件过程的代码。)中的代码,例如中的代码,例如Open事件过程事件过程(事件过程:(事件过程:自动执行的过程,以响应用户或程序代码启动的事件或系统触自动执行的过程,以响应用户或程序代码启动的事件或系统触发的事件。)发的事件。)。OpenArgs属性也可以在属性也可以在宏宏(宏:可用来使任宏:可用来使任务自动化的操作或操作集。宏在务自动化的操作或操作集。宏在VisualBasicforApplications编程语言中录制。)编程语言中录制。)和和表达式表达式(表达式:算术或表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属
47、性的任意组合,逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)计算结果为单个值。表达式可执行计算、操作字符或测试数据。)中引用。中引用。2009年28 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:OpenForm OpenForm 方法帮助信息方法帮助信息OpenArgs例:例:例如,假定打开的是一个客户列表的例如,假定打开的是一个客户列表的连续窗体连续窗体(连续窗体:在连续窗体:在“窗体窗体”视图中,能在屏幕上显示多条记录的窗体。)视图中,能在屏幕上显示多
48、条记录的窗体。)。如果。如果希望当窗体打开时希望当窗体打开时焦点焦点(焦点:一种接受通过鼠标或键盘操焦点:一种接受通过鼠标或键盘操作或作或SetFocus方法进行的用户输入的能力。焦点可由用户方法进行的用户输入的能力。焦点可由用户或由应用程序设置。具有焦点的对象通常由突出显示的标题或由应用程序设置。具有焦点的对象通常由突出显示的标题或标题栏指示。)或标题栏指示。)移到特定的客户记录上,则可以使用移到特定的客户记录上,则可以使用openargs参数指定客户名称,然后使用参数指定客户名称,然后使用FindRecord方法,方法,将焦点移到指定的客户名称的记录上。将焦点移到指定的客户名称的记录上。该
49、参数仅在该参数仅在VisualBasic中才可用。中才可用。说明:有关该操作及其参数如何使用的详细信息,请参阅该操作说明:有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。的主题。2009年29 第第1313讲讲 AccessAccess数据库的模块设计数据库的模块设计 n面向对象的程序设计面向对象的程序设计:wherecondition参数的最大长度为参数的最大长度为32,768个字符(而在个字符(而在“宏宏”窗窗口中,口中,WhereCondition操作参数的最大长度为操作参数的最大长度为256个字符)。个字符)。语法中的可选参数可以留空,但是必须包含参数的逗号。如果位于语法中的
50、可选参数可以留空,但是必须包含参数的逗号。如果位于末端的参数留空,则在指定的最后一个参数后面不必使用逗号。末端的参数留空,则在指定的最后一个参数后面不必使用逗号。示例示例:下面的示例在下面的示例在“窗体窗体”视图中打开视图中打开“雇员雇员”窗体,并只显示窗体,并只显示“姓氏姓氏”字段为字段为King的记录。可以编辑显示的记录,也可以的记录。可以编辑显示的记录,也可以添加新记录。添加新记录。DoCmd.OpenFormEmployees,LastName=King OpenForm OpenForm 方法帮助信息方法帮助信息2009年30 第第1313讲讲 AccessAccess数据库的模块设