您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 1.VBA编程基础-常量、变量、运算符和表达式
全国计算机等级考试Access数据库程序设计(二级)万红波烟台大学VBA编程基础1.常量、变量、运算符和表达式;2.流程控制语句;3.过程调用和参数传递;4.常用操作的实现方法;5.VBA的数据库编程;1.1数据类型程序的主要目的是处理各种数据,现实存在的数据是各种各样的,比如有整数、文本数据等等;在表的创建过程中,涉及到字段的数据类型,字段的数据类型决定了字段可以存储什么样的数据;字段的数据类型是Access内部的数据类型;VBA中也定义了各种数据类型,用来在程序中存放不同的数据;1.1数据类型数据类型类型标识类型说明符号数据库字段类型字节Byte字节整数Integer%字节/整数/是/否长整数Long&长整数/自动编号单精度数Single!单精度数双精度数Double#双精度数货币Currency@货币字符串String$文本布尔型Boolean是/否日期型Date日期/时间变体类型Variant任何1.1数据类型-变体数据类型变体类型-除了定长字符串类型、用户自定义类型外,可以包含其他任何类型的数据;如果没有显式声明,变量的默认类型是变体类型;1.2变量变量就是存放数据的容器,在程序运行中存放数据,并且数据可以发生变化;变量的名字由字符、数字、下划线(_)构成,变量命名大小写不“敏感”;1.2变量-显式定义变量显式变量:先定义变量,后使用Dim[变量名]As[变量类型]DimiiAsInteger‘定义ii为整型变量DimsAsString*10‘定义s为定长字符串Dimt‘没有As部分,默认为Variant类型可以加入OptionExplicit语句,强制要求所有变量必须先定义后使用;1.2变量-隐式变量变量没有直接定义,借助将一个值指定给变量名的方式来建立变量;MyVar=532‘默认是Variant类型,值为532可以使用类型说明字符来指明隐含变量的类型MyVar%=23MyDouble#=23.341.2变量作用域-局部范围变量定义在模块的过程的内部PrivateSubOK_Click()DimiAsIntegeri=9MsgBoxi=&iEndSub1.2变量作用域-模块范围变量定义在模块的所有过程之外的起始位置,模块的所有子过程和函数都可以使用;DimiAsIntegerPrivateSubOK_Click()i=9MsgBoxi=&iEndSub1.2变量作用域-全局范围变量定义在标准模块的所有过程之外的起始位置,用Public...As定义的变量属于全局范围;PubliciAsInteger全局范围的变量,在类模块和标准模块中都可以访问;在类模块中访问标准模块中的全局变量[标准模块名].[全局变量名]1.3数据类型之间的转换把数据转换成特定的类型函数目标类型|函数目标类型CBoolBoolean|CDateDateCByteByte|CDblDoubleCVarVariant|CStrStringCIntInteger|CLngLongCCurCurrency|CSngSingleDimbbAsBooleanbb=CBool(true)1.4用户自定义数据类型可以建立包含一个或多个VBA标准数据类型的用户自定义数据类型用户自定义类型的声明,必须放在标准模块中Type[数据类型名]域名As数据类型域名As数据类型........EndType1.4用户自定义数据类型-例子‘在标准模块asd中,声明用户自定义类型PublicTypeStudenttxtNoAsString*7txtNameAsStringtxtSexAsString*1txtAgeAsIntegerEndType‘在类模块中,定义用户自定义类型变量PrivateSubOK_Click()DimstuAsasd.Studentstu.txtNo=2929333stu.txtName=张三stu.txtSex=男stu.txtAge=20MsgBoxstu.txtName&stu.txtNameEndSub1.4用户自定义数据类型-例子‘在类模块中,定义用户自定义类型变量PrivateSubOK_Click()DimstuAsasd.StudentWithstu.txtNo=2929333.txtName=张三.txtSex=男.txtAge=20EndWithMsgBoxstu.txtName&stu.txtNameEndSub1.5数组数组:包含一种数据类型的一组数据Dim数组名([下标下限]to下标上限)缺省情况下,数组下标下限为0,可以使用“OptionBase1”将数组的默认下标下限由0改为1DimNewArray(10)AsIntegerNewArray(0)......NewArray(10)1.5数组二维数组的定义Dimaa(5,5)AsIntegeraa(0,0)a(0,1)a(0,2)...a(0,5)...a(5,5)动态数组先用Dim显式定义数组但不指明元素数目,然后用ReDim关键字来决定元素数目;DimMyArray()AsLong...ReDimMyArray(10)练习题以下哪个选项定义了10个整型数构成的数组,数组元素为NewArray(1)至NewArray(10)A)DimNewArray(10)AsIntegerB)DimNewArray(1To10)AsIntegerC)DimNewArray(10)IntegerD)DimNewArray(1To10)Integer练习题语句DimNewArray(10)AsInteger的含义是A)定义了一个整型变量且初始值为10B)定义了10个整数构成的数组C)定义了11个整数构成的数组D)将数组的第10元素设置为整型1.6引用窗体或报表中控件的属性值引用窗体或报表中控件(通用方式)Forms![窗体名称]![控件名称].[属性名称]Reports![窗体名称]![控件名称].[属性名称]引用自身窗体上的控件Me.[控件名称].[控件属性]‘定义控件类型变量DimtxtNameAsControl‘用Set引用控件SettxtName=Forms![testForm]![txtName]MsgBoxtxtName.ValuetxtName.Value=Test1.7符号常量Const符号常量名称=常量值定义全局符号常量,在标准模块中GlobalConstPI=3.1415PublicConstPI=3.14151.8系统常量、内部常量Access启动时就建立的系统常量比如:True,False,Yes,No,Off,Null内部常量:VBA提供的一些预定义的内部符号常量;MsgBox提示信息,vbInformation,窗口标题“DoCmd.OpenReport教师,acViewPreview1.9运算符VBA中,使用各种运算符来完成对数据的运算和处理算术运算符关系运算符逻辑运算符连接运算符1.9运算符-算术运算符加法+减法-乘法*除法/整数除法\求模运算Mod乘幂^DimMyValueMyValue=10Mod4MyValue=10Mod2MyValue=-10Mod2MyValue=-12.7Mod-5MyValue=3^2MyValue=10.2\4.9MyValue=10\3整数除法\,操作数的小数部分直接舍去,如果结果有小数也要舍去;求模运算Mod,操作数的小数部分四舍五入后变成整数再运算;余数的正负跟被除数相关;1.9运算符-关系运算符相等=不等大于小于大于等于=小于等于=DimMyValueMyValue=(104)MyValue=(#8/8/2006#=#9/8/2008#)比较运算的结果为逻辑值:True(真)或False(假)1.9运算符-逻辑运算符逻辑运算符对两个逻辑量进行逻辑运算AND逻辑与OR逻辑或NOT逻辑非DimMyValueMyValue=(104And112)MyValue=(102Or112)myvlaue=Not(4=3)1.9运算符-连接运算符字符串连接运算符&强制将两个表达式做字符串连接+当两边的表达式都是字符串的时候,才将两个字符串连接成一个字符串DimsAsStringDimssAsStrings=2&3ss=2+31.10运算符的优先级优先级:算术运算符连接运算符关系运算符逻辑运算符算术运算符和逻辑运算符的优先级算术运算符逻辑运算符指数运算(^)NOT负数(-)AND乘法和除法(*、/)OR整数除法(\)求模运算(Mod)加法和减法(+、-)低高1.11常用标准函数VBA提供了大量的标准函数,可以在程序中调用;数学函数字符串函数日期/时间函数类型转换函数1.11常用标准函数-数学函数取整函数Int(数值表达式)Fix(数值表达式)参数为正数时,两者相同;参数为负数时候,Int返回小于等于参数值的第一个负数,Fix返回大于等于参数值的第一个负数;Dima,bAsIntegera=Int(-3.23)b=Fix(-3.23)MsgBoxa=&a&b=&b1.11常用标准函数-数学函数随机数函数Rnd(数值表达式),产生大于等于0,小于1的单精度数;数值表达式的值0,每次产生相同的数;数值表达式的值0,每次产生随机数;默认值数值表达式的值=0,产生最近生成的随机数;练习题有如下语句:s=Int(100*Rnd)执行完毕后,s的值是A)[0,99]的随机数B)[1,99]的随机数C)[0,100]的随机数D)[1,100]的随机数1.11常用标准函数-字符串函数字符串检索函数InStr([Start],Str1,Str2,[Compare])Start和Compare都是可选参数;检索Str2在字符串Str1中最早出现的位置,字符串中第一个字符的位置为1;Dimstr1,str2AsStringDimiAsIntegerstr1==ytui=InStr(str1,str2)MsgBoxi1.11常用标准函数-字符串函数字符串长度函数Len(字符串)返回字符串中所包含的字符的个数,对于定长字符串来说,返回定义时的长度;Dimstr1AsString*10Dimstr2AsStringstr1=abcdstr2=abcdDimi1,i2AsIntegeri1=Len(str1)i2=Len(str2)1.11常用标准函数-日期/时间串函数Date返回当前系统日期Time返回当前系统时间Now返回当前系统日期和时间DimdAsDated=NowMsgBoxd1.11常用标准函数-类型转换函数字符和字符的ASCII码之间的转换Asc(字符串表达式):将字符串中的第一个字符转换为该字符的ASCII码;Chr(字符的ASCII码):返回ASCII码对应的字符;数字和字符串之间的相互转换Str(数值表达式):转换成字符串;Val(字符串表达式):将数字字符串转换成数值型数字;练习题从字符串s中地2个字符开始获得4个字符的字符串函数是A)Mid(s,2,4)B)Left(s,2,4)C)Right(s,4)D)Left(s,4)
本文标题:1.VBA编程基础-常量、变量、运算符和表达式
链接地址:https://www.777doc.com/doc-2756912 .html