窗体和VBA程序设计_第1页
窗体和VBA程序设计_第2页
窗体和VBA程序设计_第3页
窗体和VBA程序设计_第4页
窗体和VBA程序设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

窗体和VBA程序设计8.1窗体的基本概念 窗体是Access数据库的一个重要对象,是用户与数据库之间的接口,用户主要通过窗体和数据库进行交互8.1.1窗体的结构窗体的基本结构是由窗体页眉、页面页眉、主体、页面页脚和窗体页脚五部分组成(每部分也称为窗体的一节)。8.1窗体的基本概念8.1.2窗体的视图 Access中的窗体的视图有五种类型:设计视图、窗体视图、数据表视图、数据透视表视图和数据透视图视图。图8-2窗体的设计视图8.1窗体的基本概念图8-3窗体的窗体视图图8-4窗体的数据表视图8.2使用向导创建窗体 创建窗体的方法主要两种:一是利用系统提供的各种向导快速创建窗体,二是采用手动方法使用设计视图创建。8.2.1使用“自动创建窗体” 例8.1以“books”表为数据源,使用自动创建窗体向导创建一个纵栏式窗体,窗体名称为“books”。 操作步骤如下:①在“数据库”窗口的“窗体”对象页面中,单击按钮(或选择【插入】|【窗体】菜单命令),打开【新建窗体】对话框。8.2使用向导创建窗体②在【新建窗体】对话框中选择自动创建窗体类型和数据源。这里选择“自动创建窗体:纵栏式”。在“请选择该对象数据的来源表或查询:”栏中将books表作为数据源。③单击【文件】|【保存】按钮(或单击“窗体视图”工具栏上的按钮),在弹出的【另存为】对话框中输入窗体名称,最后单击【确定】按钮进行保存。8.2使用向导创建窗体8.2.2使用“窗体向导” 例8.2以“books”表为数据源,使用“窗体向导”创建一个窗体,窗体名称为“books2”。 操作步骤如下:①打开【新建窗体】对话框。选择“窗体向导”选项,打开【窗体向导】。8.2使用向导创建窗体②选择“表:books”为数据源,并将窗体需要的字段“书号”、“书名”、“价格”、“作者”,“出版社”和“类别”添加到“选定的字段”列表中。③窗体的布局方式主要有:纵栏式、表格、数据表、两端对齐、数据透视表和数据透视图等六种。本例选择默认的布局方式“纵栏表”选项。8.2使用向导创建窗体④确定窗体的使用样式为“沙岩”。⑤在“请为窗体指定标题”框中可以设置窗体的标题。8.3使用设计视图创建窗体 在设计视图中创建一个窗体的一般步骤为:首先创建一个空白窗体;第二步为窗体设定数据源;然后向窗体内添加用于数据显示和维护的控件;最后设置窗体和控件的属性等。8.3.1窗体的设计视图1.认识窗体的设计视图窗口“窗体设计”工具栏工具箱字段列表属性窗口8.3使用设计视图创建窗体2.窗体的主要属性属性名说明标题设置窗体的标题,即窗体标题栏上显示的文本滚动条用来确定在窗体视图中是否显示水平滚动条和垂直滚动条记录选择器设置在窗体视图中是否显示垂直“记录选择器”浏览按钮是否在窗体的最低行显示浏览记录的一组按钮导航按钮是否显示导航按钮分割线是否显示用来分隔不同节的“分割线”最大最小化按钮是否显示最小化、最大化按钮关闭按钮是否显示“关闭”按钮自动居中当打开窗体时,是否在屏幕上居中显示边框样式是否显示边框和选择边框元素的类型记录源指定窗体的数据源8.3使用设计视图创建窗体例8.3以“books”表为数据源,使用设计视图创建一个窗体,命名为“图书信息”。具体操作步骤如下:①在“数据库”窗口的“窗体”对象页面中,单击按钮,立即创建一个空白窗体。②右键单击窗体的标题栏,在弹出的快捷菜单中选择【属性】命令,打开窗体的属性窗口。选择“数据”选项卡,设置窗体的记录源属性为books表8.3使用设计视图创建窗体③拖动“books”字段列表窗口的要显示的字段到窗体的合适位置。④单击【文件】|【保存】命令,打开【另存为】对话框,将当前窗体命名为“图书信息”。8.3使用设计视图创建窗体8.3.2常用的控件控件类型属性代码表示说明标签名称Name控件名称用来区分不同的控件标题Caption标签上显示的文本内容字体名称Fontname标签上文本的字体类型字体大小FontSize标签上标题文本的字体大小字体颜色ForeColor标题文本的字体颜色,用0-255之间的数值表示。可见性Visiable是否可见文本框名称Name控件名称用来区分不同的控件控件来源ConsolSource设定同所在窗体的记录源的某个字段绑定值Value存放在文本框中的值字体名称FontName文本框中显示文本的字体类型字体大小FontSize文本框中显示文本的字体大小命令按钮名称Name控件名称用来区分不同的控件标题Caption显示在命令按钮上的文本几种常见的控件属性8.3使用设计视图创建窗体例8.4在例8.3的基础上,向窗体添加一个标签“图书信息管理”,添加5个命令按钮,“上一记录”,“下一记录”,“添加图书”,“删除图书”,“关闭窗体”,且按钮具有相应功能。其运行界面如图8-18。8.3使用设计视图创建窗体添加标签“图书信息管理”的操作步骤如下:①打开“图书信息管理”窗体的设计视图。②适当调整窗体的大小和已有控件的位置,以便添加新的控件。③选定工具箱上的标签控件,在窗体的主体节的适当位置拖动鼠标,创建一个新的标签,输入标签标题“图书信息管理”。8.3使用设计视图创建窗体添加“上一记录”按钮的操作步骤如下:①按下工具箱的【控件向导】按钮,单击【命令按钮】,在窗体主体节的适当位置拖动鼠标,创建一个适当大小的命令按钮,弹出【命令按钮向导】对话框,如图8-19。【命令按钮向导】的第1步指定按下按钮时产生的动作。这里选择“记录导航”类别中的“转至前一项纪录”操作。8.3使用设计视图创建窗体②设置按钮的表面格式。这里选择“文本”,并输入“上一记录”作为按钮表面的文本。8.3使用设计视图创建窗体④最后单击【完成】按钮,在窗体的主体节会出现一个显示为“上一记录”的按钮。③为生成的按钮指定一个用于引用的名称,该名字不能与其他对象引用名重复。这里输入“previous”作为按钮的名称。8.3使用设计视图创建窗体采用同样的方法可以添加“下一记录”,“添加图书”,“删除图书”,“关闭窗体”按钮。各个按钮的相关参数如表按钮文本动作类别操作名称上一记录记录导航转至前一项记录previous下一记录记录导航转至下一项记录next增加图书记录操作添加新记录add删除图书记录操作删除记录delete关闭窗体窗体操作关闭窗体close8.3.3窗体和控件的事件Access中的事件主要有键盘事件、鼠标事件、对象事件和窗口事件等。键盘事件是操作键盘所引起的事件。常用的键盘事件有“键按下”、“键释放”和“击键”等。鼠标事件即操作鼠标所引发的事件。其中“单击”事件是最常用到的。窗口事件是指操作窗口所发生的事件。常用的窗口事件有“加载”、“打开”和“关闭”等。对象事件是指当对对象进行操作所引发的事件。其中“更改”事件是当文本框或组合框的内容更改时发生的事件。8.4模块的基本概念8.4.1模块的分类模块分为两种基本类型:类模块和标准模块。类模块是一种包含对象的模块。窗体和报表模块都属于类模块,而且它们各自与某一个窗体或报表相关联。标准模块是独立于窗体和报表的模块,含有常用的子过程和函数过程。8.4模块的基本概念8.4.2创建模块1.类模块的创建使用向导在窗体上创建命令按钮时,类模块会自动产生。如果要自行创建控件的事件过程可以采用以下方法:(1)打开窗体的设计视图,右键单击要编写事件过程的控件,在弹出控件的快捷菜单上选择【属性】命令,打开控件的属性窗口,(2)选择属性窗口的“事件”选项卡,在需要添加代码的事件后面选择“事件过程”,然后单击按钮,进入VBE环境,就可以编写代码了。8.4模块的基本概念2.标准模块的创建(1)在【数据库】窗口的【模块】对象页面中,单击【新建】按钮,系统会打开MicrosoftVisualBasic窗口,创建一个新模块。(2)选择【插入】|【过程】命令,弹出“添加过程”对话框。输入过程名,设置类型为子过程或函数,在过程内就可以输入VBA代码。8.5VBA编程基础8.5.1VBA数据类型数据类型存储空间类型说明符数值范围Byte(字节型)1字节无0~255Boolean(布尔型)2字节无True或FalseInteger(整型)2字节%-32768~32767Long(长整型)4字节&-2147483648~2147483647Single(单精度浮点数)4字节!-3.402823E38~3.402823E38Double(双精度浮点数)8字节#-1.79E308~1.79E308String(变长字符串)10+串长$0~20亿String(定长字符串)字符长度$1~64KCurrency(货币型)8字节@-922337203685477~922337203685477Date(日期型)8字节无1000年1月1日~9999年12月31日Object(对象型)4字节无任何对象引用Variant(变体型)8.5VBA编程基础8.5.2变量和常量1.变量(1)变量名的命名规则为:①第一个字符必须以字母或汉字开头,可以包含字符、数字或下划线等。②变量名中不能包含空格,也不能包含!、@、&、#,

>等特殊符号。③长度不能超过255个字符,不区分大小写。④不能和VBA保留的关键字相同。8.5VBA编程基础(2)变量的声明:变量声明的格式为:

Dim变量名[As数据类型]也可以使用类型说明符直接声明变量。格式为:

变量名+类型符DimnameasStringAge%’声明变量age为Integer整型(3)变量的赋值:变量赋值的基本格式为:<变量名>=<表达式>name=“liMing”age=208.5VBA编程基础2.常量在VBA中,分为字面常量,符号常量和系统常量。字面常量实际就是常数,不同类型的常数表示方法也不一样。例如:3.1415926,“广东省人民政府”符号常量就是用Const语句声明,并设置值的数据项,只不过其值在声明之后,不能更改或赋予新值。定义符号常量的格式如下:

Const常量名[as数据类型]=<表达式>

例如:ConstPIassingle=3.1415926系统常量是VBA中预先定义好的,用户可直接使用。例如:vbOKOnly,vbRED。8.5VBA编程基础8.5.3运算符和表达式1.算术运算符运算符说明举例结果+加法5+27-减法5-23*乘法5*210/除法5/22.5\整除5\22mod取模5mod21^幂5^2258.5VBA编程基础2.关系运算符关系运算符的作用是将两个操作数进行比较,如果关系成立,则表达式的结果为true,否则结果为false。运算符说明举例结果>大于“abcdef”>”abcabc”True>=大于等于“ABCD”>=”abcd”False<小于24<10False<=小于等于#1997-7-1#<=#2008-8-8#True=等于“abcd”=”ABCD”False<>不等于“abcd”<>”ABCD”True8.5VBA编程基础3.逻辑运算符逻辑运算主要有:逻辑与(And),逻辑或(Or),逻辑非(Not)和逻辑异或(Xor)。逻辑运算的结果仍然为逻辑值。运算符说明举例结果And(逻辑与)仅当两个运算数都为真时,结果才为真trueandfalsetrueandtrueFalsetrueOr(逻辑或)两个操作数只要有一个为真,结果就为真trueorfalsefalseorfalsetruefalseNot(逻辑非)逻辑假的逻辑非为真逻辑真的逻辑非为假notfalsenottruetruefalseXor(逻辑异或)两个运算数不相同,结果为真,否则为假truexorfasetruexortruetruefalse8.5VBA编程基础4.连接运算符使用连接运算符可以将字符串连接起来,得到一个新的字符串。连接运算符主要有”+”和”&”。“+”只能连接两个字符串。“&”可以将字符串和其他类型的数据强制连接起来。例如:“abcd”+”广东”结果为:“abcd广东”“abcde”&2009结果为:”abcde2009”8.5VBA编程基础5.运算符的优先级算术运算符的优先级由高到低为^,-(负号),*和/,\,mod,+和-。逻辑运算符的优先级由高到低为Not,And,Or,Xor。所有关系运算符的优先级相同。不同类型的运算符的优先级由高到低为算术运算符,连接运算符,关系运算符,逻辑运算符。括号可以改变优先级的顺序。括号内的操作总是比括号外的操作先被执行。8.5VBA编程基础6.检验表达式值的方法:打开MicrosoftVisualBasic窗口,选择【视图】菜单的【立即窗口】命令,打开立即窗口。如图8-26所示。使用print或?命令,即可输出表达式结果。8.5VBA编程基础8.5.4函数根据函数的功能,大致可以分为数学函数,字符串函数,日期函数,转换函数等。1.数学函数函数功能举例结果Abs(num)返回num的绝对值Abs(-3)3Sqr(num)返回num的平方根Sqr(4)2Int(num)返回小于num的最大整数Int(3.1415)3Round(expr,num)返回expr四舍五入,保留num位小数Round(3.1415,2)3.14Rnd([num])返回一个0到1之间的随机数Rnd()8.5VBA编程基础2.字符串函数函数功能举例返回结果Left(str,num)从str字符串左边取num个字符left(“Guang”,2)“Gu”Right(str,num)从str字符串右边取num个字符right(“Guang”,2“ng”Mid(str,n1,n2)从str字符串左边第num1个字符开始,向右取num2个字符mid(“Guang”,2,2)“ua”Len(str)返回str的字符个数len(“Guang”)5Space(num)返回由num个空格组成的字符串space(3)“”8.5VBA编程基础函数功能举例返回结果Ucase(str)将str中所有的小写字符转换为大写Ucase(“Guang”)“GUANG”Lcase(str)将str中所有的大写字符转换为小写Lcase(“Guang”)“guang”Trim(str)去掉str两边的空格Trim(“abc“)“abc”Ltrim(str)去除str左边的空格Ltrim(“abc“)“abc”Rtrim(str)去除str右边的空格Rtrim(“abc“)“abc”8.5VBA编程基础3.日期与时间函数函数功能举例返回结果Date()返回系统日期Date()#2010-1-1#(假设当前系统日期为2010年1月1日)Time()返回系统时间Time()Now()返回系统日期和时间Now()Year(d)返回日期d的年份Year(#2010-2-1#)2010Month(d)返回日期d的月份Month(#2010-2-1#)2Day(d)返回日期d的日期Day(#2010-2-1#)18.5VBA编程基础4.类型转换函数函数功能举例返回结果Chr(num)返回以num为ASCII码的字符Chr(65)“A”Asc(str)返回字符串str首字符的ASCII码值Asc(“BCD”)66Str(num)将数值num转换为字符串Str(3.1415)“3.1415”Val(str)将字符串str转换为数值Val(“3.1415”)3.14158.6VBA的程序结构结构化语言中的程序控制结构主要三种,分别是顺序结构,选择结构和循环结构。8.6.1顺序结构顺序结构是程序设计中最基本、最简单的控制结构。顺序结构有一个入口和一个出口,运行时按照先后顺序依次执行程序中的各条语句。8.6VBA的程序结构经常使用的顺序结构语句有:变量或数组的声明语句、赋值语句、输出语句和注释语句等。赋值语句的一般形式为:<变量名>=<表达式><对象名>.<属性名>=<表达式>例如:y=14.2text1.text=“GuangDong”2.注释语句程序中的注释语句用来对编写的程序加以说明和注解,便于程序的阅读、修改和使用。注释语句的格式为:

’|Rem<注释内容>8.6VBA的程序结构3.数据输出语句—Print方法Print是输出数据、文本的一个重要方法,可以将数据输出到窗体、立即窗口或打印机上。其格式如下:[<对象名>.]Print[<表达式1>,[<表达式2>,...]]其中<对象名>可以是窗体、立即窗口、打印机等,如果省略,则在当前窗体上输出。例如:Dimaasinteger,basintegera=10b=20Printa,b’输出两个变量a和b的值8.6VBA的程序结构8.6.2选择结构在VBA中选择结构主要有If语句和SelectCase语句。1.IF语句基本格式:If<条件表达式>Then<语句序列1>Else <语句序列2>EndIf程序执行时,先判断条件表达式的值是否为真,若为真,就执行Then后面的语句序列1,否则就执行Else后的语句序列2。8.6VBA的程序结构例:判断今年是否为闰年,如果年份能被400整除或不能被100整除但能被4整除,则为闰年,否则为平年。DimYasIntegerY=year(Date())If(ymod400=0Orymod100=0andymod4<>0)ThenPrint“今年是闰年!”ElsePrint“今年是平年!”EndIf8.6VBA的程序结构2.SelectCase语句语法格式:SelectCase<测试表达式>Case<条件列表1>语句序列1Case<条件列表2>语句序列2……Caseelse语句序列nEndSelect8.6VBA的程序结构说明:(1)测试表达式可以是数值表达式或字符表达式(一般为变量),不能是关系表达式和逻辑表达式。(2)条件列表中表达式的类型要和测试表达式的类型相同(3)条件列表的形式可以是:①<表达式1>[,<表达式2>]……各表达式的值为“或”关系,即当测试表达式的值与它们中某个相同,就执行该分支的语句序列。例如:Case2,4,6表示当测试表达式的值等于2或4或6时执行该分支的语句序列。②<表达式1>to<表达式2>当测试表达式的值在<表达式1>到<表达式2>之间时,执行该Case

分支的语句序列。例如:Case‘a’to‘z’表示当测试表达式为小写字母时执行该分支语句序列。③Is<关系表达式>Is表示当测试值满足关系表达式时,执行该分支的语句。8.6VBA的程序结构例8.12创建一个名为“成绩判断”的窗体,根据用户输入的成绩值,判断成绩的等级。属于不及格、及格、良好或优秀。判断标准为:若成绩<60分,为不及格;若成绩在60和70之间,为及格;若成绩在70到85之间为良好;若成绩大于85分为优秀。窗体的设计视图如图所示。8.6VBA的程序结构和编程相关步骤如下:③右键单击cmdJudge按钮,在弹出的快捷菜单中选择【属性】命令,在打开的属性窗口中选择“事件”选项卡,设置“单击”项为“事件过程”,然后单击按钮,进入VBE环境。系统自动生成以下代码:PrivateSubcmdJudge_Click()EndSub④在过程中输入以下程序代码:SelectCasescore.valueCaseIs<60result.value=“不及格”Case60to75result.value=“及格”Case75to85result.value=“良好”CaseElseresult.value=“优秀”EndSelect8.6VBA的程序结构8.6.3循环结构1.DoWile|Until……loop结构语句格式如下:DoWhile|Until<条件> [循环体][ExitDo]Loop说明:(1)当语句结构是DoWhile时,先判断循环条件,当条件为真时,进入循环体,执行完语句序列后,重新判断循环条件是否成立,直到循环条件为假,结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论