您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > access8-VBA编程入门语法
第8章VBA编程入门内容提要8-1VBA概念8-2VBA编程基础8-3VBA常用语句8-4VBA程序流程控制8-5数组8-6VBA与宏8-7小结及练习VBA(VisualBasicforApplication)是MicrosoftOffice系列软件的内置编程语言,其语法结构与VisualBasic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。8-1VBA概述8-1-1VBA简介1.集合和对象VBA中的应用程序是由许多对象组成的,如表、窗体、查询等。对象是帮助构造应用程序的元素,以特定的方式组织这些对象,就形成了应用程序。数据库窗口把可供选择的对象排列在一起,形成不同的类。8-1-2面向对象程序设计的基本概念2.对象的属性、事件和方法属性属性描述了对象的自身性质。其格式为:对象名.属性=属性值事件事件是指可以发生在一个对象上且能够被该对象所识别的动作。如:单击某个命令按钮就产生该按钮的“单击”事件当某个对象发生某一事件后,就会驱动系统去执行预先编好的、与这一事件相对应的一段程序。方法方法是系统事先设计好的,可以完成一定操作的特殊过程,是附属于对象的行为和动作。在需要使用的时候可以直接调用。其调用格式为:对象名.方法名Access中除数据库的7个对象外,还提供一个重要的对象:DoCmd对象除窗体、控件的SetFocus(获得控制焦点)方法外,用得最多得是DoCmd对象的一些方法。使用这些方法,可以在VBA中运行Access的操作。打开当前数据库中的“雇员”窗体DoCmd.OpenFormEmployees在数据库窗口中选择“雇员”窗体DoCmd.SelectObjectacForm,Employees,True在数据库窗口中关闭“雇员”窗体DoCmd.CloseacForm,“Employees”,acSaveYes删除数据库中的“雇员”表DoCmd.DeleteObjectEmployeesDoCmd对象的常用方法(参照教材P190页)例8-1新建一个窗体并添加两个命令按钮,运行窗体后,单击第一个按钮,新式一个消息框;单击第二个按钮,退出当前窗体。(参照教材P191页)通过此例,体会可视化编程、面向对象、事件过程、应用方法等基本概念。进入VBE编程环境VBE窗口的组成VBE窗口由工具栏、工程资源管理器窗口、属性窗口、代码窗口和立即窗口组成。在VBE环境中编写VBA代码8-1-3VBA编程环境标准工具条视图MicrosoftAccess按钮:切换Access2000窗口插入按钮:插入模块或过程运行子过程/用户窗体按钮:运行模块中的程序中断按钮:中断正在运行的程序重新设置按钮:结束正在运行的程序设置模式按钮:在设计模式和非设计模式之间切换工程资源管理器按钮:用于打开工程资源管理器属性窗口按钮:用于打开属性窗口对象浏览器按钮:用于打开对象浏览器MicrosoftAccsee插入模块运行子过程/用户窗体设计模式中断重新设计工程资源管理器对象浏览器属性窗口工程窗口-选择对象属性窗口-选择对象的属性代码窗口选择事件VBE编程环境8-2-1常量、变量8-2VBA编程基础常量:在程序运行中其存储的值不会改变。变量:在程序运行中其值可以改变。VBA使用常量、变量来存储值。用来保存在程序运行期间数据。常量在程序运行过程中,其值不会被改变的量称为常量。在VBA中有三类常量:直接常量如:10,20%,123.0,“AB”,“VBA程序设计”等符号常量系统常量指VBA系统预先定义好的,用户可以直接引用的量。如:acForm,acQuery,vbOk,vbRed符号常量在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VBA中使用关键字Const声明符号常量。其格式如下:Const常量名[类型符号]=常数表达式如:ConstPI#=3.1415926变量是内存中的临时单元,存放在程序执行过程中产生的中间结果和最后输出结果。在程序中使用变量,就要给变量定义名称及类型,即对变量进行声明。变量变量命名规则变量名必须以字母或汉字开头,后可跟字母、汉字、数字或下划线组成(不能含有小数点和空格),长度不超过255个字符的字符串;不能使用VBA中的关键字;VBA中不区分变量名的大小写;变量名的最后一个字符可以是%、&、!、#、$等表示数据类型的声明符。说明:常量名的命名规则与变量名的命名规则相同8-2-2数据类型与变量的声明在VBA中,数据类型用来决定变量可以保存何种数据。VBA支持多种数据类型,为用户编程提供了方便。参照教材P196页表8-1VBA的数据类型VBA的数据类型数据类型类型声明符存储空间取值范围整型(Integer)%2-32768~32767长整型(Long)&4-2147483648~2147483647单精度浮点型(Single)!4负数:-3.402823E38~-1.401298E-45正数:1.401298E-45~3.402823E38双精度浮点型(Double)#8负数:-1.79769313486232E308~-4.94065645841247E-324正数:4.94065645841247E-324~1.79769313486232E308货币型(Currency)@8-922337203685477.5808~922337203685477.5807日期型(Date)8100年1月1日~9999年12月31日字符型(String)$0字符~65400个字符字节型(Byte)10~255逻辑型(Boolean)2True或False对象型(Object)4任何引用的对象变体型(Variant)变量声明用Dim|Static语句显式声明局部变量格式:Dim变量名[AS类型]或Dim变量名类型符语句中的“As类型”子句是可选的。如果使用该子句,就可以定义变量的数据类型。未使用,默认变量的类型为变体型(Variant)。例如:DimiAsinteger,s表示声明了一个名为i的整型变量和一个名为s的变体型变量。关键字Dim或Static的区别:Dim声明:随过程的调用而分配存贮单元,每次调用都对变量初始化;过程体结束,变量的内容自动消失,存储单元释放。Static声明:Static声明的变量,也称为静态变量。静态变量在程序运行过程中一直保留其值,即每次调用过程,变量保持原来的值。隐式声明变量未进行上述的声明而直接使用变量,称变量的隐式声明。采用隐式声明的变量都是变体型(Variant)。注意:VBA中允许不事先声明而直接使用变量,可以通过语句OptionExplicit,来要求所使用的变量必须事先声明,否则VBA会发出警告信息。下面是一个简单的程序,其使用的变量a,b,Sum都没有事先定义。PrivateSubForm_Click()Sum=0a=10b=20Sum=a+bPrintSum=;SumEndSub良好的编程习惯应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。VBA中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:OptionExplicit声明而未赋值的变量的值为:数值型变量初始化为0;字符型变量为零长度字符串;变体型变量初始化为Empty。变量的初始化8-2-3运算符和表达式(教材P199页)运算符算术运算符例如:123+456结果123456123&456结果123456使用上&与+的区别:例如:abcdef&12345结果为abcdef12345123&456结果为123456abcdef+12345结果为出错123+456结果为579连接运算符:&、+(字符串连接)将两个操作数进行大小比较,结果为逻辑值。注意:字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止。关系运算符将操作数进行逻辑运算,结果是逻辑值逻辑运算符组成由变量、常量、函数等运算对象加上运算符、圆括号组成的式子。书写规则(1)运算符不能相邻。例a+-b是错误的。(2)乘号不能省略。例x乘以y应写成:x*y。(3)括号必须成对出现,均使用圆括号。(4)表达式从左到右在同一基准上书写,无高低。运算优先级算术运算符连接运算符关系运算符逻辑运算表达式例1:用人单位招聘秘书:年龄小于40岁的女性,学历专科或本科,年龄40,性别=“女”,(学历=“专科”,学历=“本科”)AndAndOr73x例2:算术表达式:正确的VBA表达式:3〈=xAndx=7错误的VBA表达式:3=x=7或3=xOrx=7考虑:若分别写成:年龄40And性别=女And(学历=专科And学历=本科)年龄40Or性别=女Or(学历=专科Or学历=本科)函数实际上是系统事先定义好的内部程序,用来完成特定的功能。VBA提供了大量的内部函数,供用户在编程时使用。函数的调用形式为:函数名(参数表)常用内部函数参照教材P201页表8-5常用内部函数,在立即窗口练习,体会函数的功能。8-2-4常用函数InputBox函数InputBox(提示[,标题][,缺省])其中:提示:提示信息;标题:对话框标题;缺省:输入区缺省值。注意:函数的返回值为字符型数据。输入、输出函数使用MsgBox,可以在对话框中显示文本信息。格式为:MsgBox(提示信息[,按钮数目和类型][,标题])MsgBox函数或方法(用于显示输出信息)MsgBox函数:变量[%]=MsgBox(提示[,按钮][,标题])MsgBox方法:MsgBox提示[,按钮][,标题]8-3VBA常用语句VBA代码不区分字母的大小写系统保留字自动转换每个单词的首字母大写;语句书写自由一行可书写几句语句,之间用冒号(:)分隔;一句语句可分若干行书写,用续行符将语句分开。8-3-1VBA语句书写规则赋值语句:给变量、常量或对象的属性指定一个值或表达式。8-3-2VBA常用语句格式:[LET]变量名=表达式作用:将表达式的值赋值给变量名。一般用于给变量赋值或对控件设定属性值。例如:s=10Text1.Text=欢迎使用VBA注意:虽然赋值号与关系运算符等于号都用“=”表示,VBA会根据所处的位置自动判断是何种意义的符号声明语句:命名和定义常量、变量、数组以及过程。注释语句在程序中的适当位置加上注释语句有利于程序的维护和阅读。格式:Rem注释内容或用单引号’注释内容结构化程序设计由顺序、分支、循环这3种基本结构所组成。语句组2语句组1TF语句组2条件语句组18-4VBA程序流程控制FT条件语句组TF条件语句组单行If语句格式:If表达式Then语句1[Else语句2]功能:If测试指定的条件,如果条件表达式为真(True),则执行Then后面的语句1,否则执行语句2(若Else子句未省略)。分支结构TF语句2条件语句1TF条件语句1PrivateSubp1()DimxAsInteger,yAsIntegerx=InputBox(请输入x值)Ifx=0Theny=2*x+1MsgBoxy:&yEndSubPrivateSubp1()DimxAsInteger,yAsIntegerx=InputBox(“请输入x值”)Ifx=0Theny=2*x+1Elsey=1MsgBoxy:&yEndSub根据输入x的值,观察y的输出结果多行If语句格式:If表达式Then语句组1[Else语句组2]EndIf多行If语句的执行过程是:如果“表达式”的值为真,则执行语句组1;否则执行语句组2。当执行完语句组1或语句组2后,程序流程跳转到语句EndIf的后面。语句组可以由一条或多条语句组成,语句组不能与Then书写在同一行,否则VBA认为是一个单行If语句,会导致Else没有匹配的If。语句“EndIf”是多行If语句的结束标志。在多行If语句中,即使省略Else子句,也要写该结束标志。省略Else子句时的多行If语句
本文标题:access8-VBA编程入门语法
链接地址:https://www.777doc.com/doc-3740931 .html