1、学习目标:学习目标:u 掌握掌握VB的编码规则的编码规则u 了解了解VB的数据类型的数据类型u 掌握变量、常量的声明和使用掌握变量、常量的声明和使用u 掌握运算符和表达式的使用掌握运算符和表达式的使用u 掌握掌握VB数据的输入与输出数据的输入与输出u 了解了解VB的内部函数的内部函数 教学内容:教学内容:2.1 VB编码编码规则规则 2.2 VB的数据类型的数据类型 2.3 变量与常量变量与常量 2.4 运算符与表达式运算符与表达式 2.5 数据的输入输出数据的输入输出 2.6 VB的常用内部函数的常用内部函数 例例2.1 单击窗体可输出内容交换后的单击窗体可输出内容交换后的a变量和变量和b变
2、量的值。变量的值。Private Sub Form_Click()Dim a As Integer,b As Integer,intTemp As Integer 声明变量声明变量 a=10 变量赋值变量赋值 b=20 Print a变量和变量和b变量内容交换前:变量内容交换前:;a;b 变量交换变量交换 intTemp=a a=b b=intTemp Print a变量和变量和b变量内容交换后:变量内容交换后:;a;b End Sub 返回目录返回目录u语句输入时不区分大小写,一条语句通常写在一行中。语句输入时不区分大小写,一条语句通常写在一行中。u一行中若输入多条语句,需用一行中若输入多条
3、语句,需用“:”:”分隔。例如,分隔。例如,intTemp=a:a=b:b=intTemp u长语句可通过续行符长语句可通过续行符“_”(_”(空格后加下划线空格后加下划线)分行。分行。例如,例如,Print a变量和变量和b变量内容交换前:变量内容交换前:;a;b 可分成以下两行输入:可分成以下两行输入:Print a变量和变量和b变量内容交换前:变量内容交换前:;_ a;bu单引号后面的内容为注释,可放在一行语句的最后,或单单引号后面的内容为注释,可放在一行语句的最后,或单独占据一行。独占据一行。u数值前加上前缀数值前加上前缀&H和和&0分别表示十六进制和八进制数。分别表示十六进制和八进制
4、数。返回目录返回目录 标识符标识符:变量、常量、类型、过程、函数、以及其它对:变量、常量、类型、过程、函数、以及其它对象的名字。象的名字。命名规则命名规则:由字母、汉字、数字或下划线组成,第一个字符必须由字母、汉字、数字或下划线组成,第一个字符必须是字母或汉字。是字母或汉字。长度不超过长度不超过255个字符。其中,窗体、控件和模块的标个字符。其中,窗体、控件和模块的标识符长度不能超过识符长度不能超过40个字符。个字符。不要与不要与VB中的关键字同名中的关键字同名最好能最好能“见名知义见名知义”返回目录返回目录 语法格式:语法格式:Let 变量名变量名=表达式表达式 作用:变量赋值或属性设置。例
5、如:作用:变量赋值或属性设置。例如:Pi=3.14159strTemp=“Hello!”Label1.Caption=“VB程序设计示例程序设计示例”Form1.BackColor=vbWhite 说明:说明:只有当表达式的类型与变量的数据类型兼容时,该表达式的值才只有当表达式的类型与变量的数据类型兼容时,该表达式的值才可以赋给相应的变量或属性。可以赋给相应的变量或属性。不管表达式是什么类型,都可以赋给不管表达式是什么类型,都可以赋给Variant(变体类型变体类型)变量。变量。返回目录返回目录 VB提供的基本数据类型见教材表提供的基本数据类型见教材表2.1。1.数值型数值型 字节型字节型(B
6、yte):存:存放放无符号整数,取值范围无符号整数,取值范围0 255整型:整型:Integer和和Long,存放整数,存放整数浮点型浮点型(实型实型):单精度型:单精度型(Single)和双精度型和双精度型(Double)存放带小数的数值存放带小数的数值 例:例:单精度数单精度数 -6.25E8表示表示-6.25108 双精度数双精度数 7.878D-6表示表示 7.878106 货币型货币型(Currency):一种精确的定点类型数据:一种精确的定点类型数据 支持支持15位整数和位整数和4位小数位小数 返回目录返回目录2.字符串型字符串型(String)VB字符串是由字符串是由双引号双引号
7、括起来的一串字符括起来的一串字符不含任何字符不含任何字符(长度为长度为0)的字符串称为空串的字符串称为空串String型变量型变量有变长和定长之分,例:有变长和定长之分,例:Dim NameA As String 声明变长字符串变量声明变长字符串变量 Dim NameB As String*20 声明定长字符串变量声明定长字符串变量 3.逻辑型逻辑型(Boolean)逻辑型逻辑型数据的取值:数据的取值:True或或False,例:,例:Dim BoolR As Boolean BoolR=68 Print BoolR 输出输出:False 返回目录返回目录4.日期型日期型(Date)日期型变量
8、可存放日期和时间日期型变量可存放日期和时间日期型常数的表现形式:日期型常数的表现形式:#mm/dd/yyyy hh:mm:ss#mm/dd/yyyy hh:mm:ss 日期型数据的输出格式取决于系统的区域设置日期型数据的输出格式取决于系统的区域设置 例例:Dim d As Date 声明日期型变量声明日期型变量D D=#10/5/2002#日期型变量赋值日期型变量赋值 Print D 输出日期型变量的值输出日期型变量的值返回目录返回目录5.对象型对象型(Object)声明声明对象对象变量后,用变量后,用Set语句指定实际引用的对象语句指定实际引用的对象 例,窗体上有命令按钮例,窗体上有命令按钮
9、Command1,执行如下语句,执行如下语句,可将该按钮的显示文字改为可将该按钮的显示文字改为OK Dim a As Object 声明声明a为对象型变量为对象型变量 Set a=Command1 指定指定a引用引用Command1命令按钮命令按钮 a.Caption=“OK”与与Command1.Caption等价等价6.变体型变体型(Variant)变体变体:在程序运行期间可存放不同类型的数据。:在程序运行期间可存放不同类型的数据。例:例:Dim X X缺省为缺省为 Variant类型类型 X=17 X被赋予字符串被赋予字符串 17 X=X 2 X被赋予数值被赋予数值15 X=A&X X被
10、赋予字符串被赋予字符串 A15 返回目录返回目录u在模块的在模块的“通用通用”声明段声明声明段声明 Private|Public Type 数据类型名数据类型名 元素名元素名1 As 类型名类型名 元素名元素名2 As 类型名类型名 End Type Public:声明的类型在工程中所有模块的任何过程中可用:声明的类型在工程中所有模块的任何过程中可用Private:声明的类型只能在当前模块中使用:声明的类型只能在当前模块中使用 u声明自定义数据类型后,可使用该类型。例声明自定义数据类型后,可使用该类型。例 Dim studTemp As student 声明声明为为student类型变量类型变
11、量u访问自定义数据类型的变量:访问自定义数据类型的变量:变量名变量名.成员名成员名,如:,如:studTemp.id=“030005”studTemp.xm=“李斌李斌”返回目录返回目录1.变量的声明变量的声明通过类型符号:直接在变量名后面加上类型符号通过类型符号:直接在变量名后面加上类型符号 S&=10 声明声明S为长整型变量为长整型变量 使用声明语句使用声明语句 Dim 变量名变量名 As 类型类型 Dim 变量名变量名 类型符类型符 例如,下面两条声明语句的效果相同:例如,下面两条声明语句的效果相同:Dim a As Integer,b As Long,c As Single,d As
12、Double Dim a%,b&,c!,d#若省略类型说明,被声明的变量为若省略类型说明,被声明的变量为Variant型。例如:型。例如:Dim a,b a和和b均为变体型变量均为变体型变量 Dim S1,S2 As String*6 S1为变体型变量为变体型变量,S2为定长字符串为定长字符串 返回目录返回目录见表见表2.22.变量的隐式及显式声明变量的隐式及显式声明不声明就用的变量被隐式声明为不声明就用的变量被隐式声明为Variant,初值,初值Empty 强制进行变量的显式声明强制进行变量的显式声明v“通用通用”声明段中加上语句:声明段中加上语句:Option Explicit v“工具工
13、具选项选项”“编辑器编辑器”返回目录返回目录对新模块起作用对新模块起作用遇到未经声明的变遇到未经声明的变量包括输错的变量,量包括输错的变量,系统会发出错误警系统会发出错误警告告 3.变量的有效范围变量的有效范围 (1)局部变量:在一个局部变量:在一个过程内部声明过程内部声明的变量的变量 有效范围限于声明它的过程有效范围限于声明它的过程 自动变量:自动变量:用用Dim声明,声明,变量值只在过程执行期间才存在变量值只在过程执行期间才存在 静态变量:用静态变量:用Static声明,声明,变量值在程序运行期间一直存在变量值在程序运行期间一直存在 例例2.2 统计单击窗体的次数统计单击窗体的次数 Pri
14、vate Sub Form_Click()Static intCount As Integer intCount=intCount+1 Print intCount End Sub 返回目录返回目录单击窗体单击窗体3 次次 将将Static改为改为Dim (2)模块变量:模块变量:“通用通用”声明段用声明段用Private或或Dim语句声明语句声明 可被该模块中的任何过程所访问可被该模块中的任何过程所访问 例例2.3 Private a As Integer,b As Integer 声明模块变量声明模块变量 Private Sub Command1_Click()Dim intTemp As
15、 Integer 声明局部变量声明局部变量 a=10:b=20 Print a和和b内容交换前:内容交换前:;a;b intTemp=a:a=b:b=intTemp 变量交换变量交换 End Sub Private Sub Command2_Click()Print:Print a和和b内容交换后:内容交换后:;a;b End Sub返回目录返回目录 (3)全局变量:全局变量:标准模块的声明段用标准模块的声明段用Public或或Global声明声明 有效范围是整个工程的所有模块有效范围是整个工程的所有模块 说明:说明:标准模块:只含有程序代码的文件,扩展名为标准模块:只含有程序代码的文件,扩展
16、名为.bas添加标准模块:添加标准模块:“工程工程添加模块添加模块”如果在窗体模块的如果在窗体模块的“通用通用”返回目录返回目录声明段用声明段用Public声明变量,声明变量,其它模块可通过如下方式其它模块可通过如下方式引用该变量:引用该变量:窗体模块名窗体模块名.变量名变量名1.内部常量内部常量 由应用程序和控件提供。例如:由应用程序和控件提供。例如:Form1.BackColor=vbBlue vbBlue是表示蓝色的内部常量是表示蓝色的内部常量 查看系统预定义常量:查看系统预定义常量:“视图视图对象浏览器对象浏览器”返回目录返回目录2.符号常量符号常量(自定义常量自定义常量)命名:遵循标
17、识符命名的规则命名:遵循标识符命名的规则声明格式:声明格式:Public|Private Const 常量名常量名As 类型类型=表达式表达式 例:例:Const conMax As Integer=9 声明声明Integer型常量型常量 Const conDate=#10/5/2002#声明声明Date型常量型常量 Const CodeName=ASCII 声明声明String型常量型常量有效范围:局部常量、模块常量、全局常量有效范围:局部常量、模块常量、全局常量声明常量的表达式中不能出现函数调用和循环引用声明常量的表达式中不能出现函数调用和循环引用 例:错误的常量声明例:错误的常量声明 C
18、onst conS=Sqr(10)Const conA=conB+10,conB=conA+1返回目录返回目录1.算术运算符算术运算符 返回目录返回目录优先级优先级运算运算运算符运算符举例举例结果结果 高高 低低乘方乘方 2 3 8取负取负-2 3-8乘、除乘、除*/5*3/2 7.5整除整除 5*3 2 7求余求余 Mod5*3 Mod 2 1加、减加、减+-10-3+(-2)52.字符串运算符字符串运算符运算符:运算符:&和和+例:例:VB=“Visual”+“Basic”连接为字符串连接为字符串“Visual Basic”label1.Caption=第第&Str(N)&条记录条记录 S
19、tr为数值型转字符型函数。若为数值型转字符型函数。若N为为1,标签上显示,标签上显示“第第1条记录条记录”说明:说明:v使用使用+号号,要求连接的两个表达式均为字符串型,要求连接的两个表达式均为字符串型v使用使用&号号,连接的两个表达式可以为任何类型,但结果为字,连接的两个表达式可以为任何类型,但结果为字符串型符串型,如如 “当前日期当前日期”
/8/2002#返回目录返回目录3.关系运算符关系运算符返回目录返回目录运运 算算运算符运算符举举 例例结结 果果 等于等于=Hello=helloFalse 不等于不等于 Hello helloTrue 大于大于 Hello helloFals
20、e 大于等于大于等于=45+10=55True 小于小于 a abTrue 小于等于小于等于=45+10 5),结果为,结果为True And:两个表达式均为:两个表达式均为True时,结果为时,结果为True 例如,例如,(4 5)And(8 7),结果为,结果为False Or:两个表达式均为:两个表达式均为False时,结果为时,结果为False 例如,例如,(4 5)Or(8 7),结果为,结果为True 返回目录返回目录XYNot YX And YX Or Y False False True False False False True False False True True
21、False True False True True True False True Trueu表达式:用运算符和圆括号将常量、变量、函数和常数表达式:用运算符和圆括号将常量、变量、函数和常数连接起来组成的有意义的式子。连接起来组成的有意义的式子。如,如,数值表达式数值表达式 Cos(180*Pi/180)*100 逻辑表达式逻辑表达式 (N=0)And(N Mod 2 0)u运算优先顺序运算优先顺序(从高到低从高到低):函数函数算术运算算术运算(乘方乘方取负取负乘乘/除除整除整除求余求余加加/减减)字符串运算符字符串运算符关系运算符关系运算符逻辑运算符逻辑运算符(NotAndOr)u用括号可
22、以改变运算顺序用括号可以改变运算顺序u乘方和负号相邻时,取负优先。乘方和负号相邻时,取负优先。例如:例如:2 -2 的结果是的结果是0.25,相当于,相当于2(-2)返回目录返回目录1.Print方法方法 功能:在窗体功能:在窗体/立即窗口立即窗口/图片框图片框/打印机上输出信息打印机上输出信息格式:格式:对象对象.Print 输出项输出项 ,|;v对象对象缺省为当前窗体,缺省为当前窗体,输出项输出项缺省则打印一空白行缺省则打印一空白行v输出项之间可用分号或逗号分隔:使用分号,其后的输出项输出项之间可用分号或逗号分隔:使用分号,其后的输出项紧接着前一个输出项输出;使用逗号,其后的输出项在下一紧
23、接着前一个输出项输出;使用逗号,其后的输出项在下一个输出区输出。个输出区输出。v两个输出区默认相隔两个输出区默认相隔1414列列 v各输出项表示要打印的表达式,组成各输出项表示要打印的表达式,组成 Spc(n)|Tab(n)表达式表达式 Spc(n):指定在输出之前插入:指定在输出之前插入n个空白字符个空白字符 Tab(n):指定在第:指定在第n列上输出列上输出返回目录返回目录例,例,Private Sub Form_Click()Print Print Tab(15);*Print Tab(13);*;Spc(1);*;Spc(1);*“End Sub 返回目录返回目录2.格式输出函数格式输
24、出函数 功能:使数值、日期或字符串按指定的格式输出功能:使数值、日期或字符串按指定的格式输出格式:格式:Format(expression,format)expression需要格式化输出的表达式需要格式化输出的表达式 format 输出的格式模式输出的格式模式 返回目录返回目录3.MsgBox函数函数 功能:创建预定义的消息对话框功能:创建预定义的消息对话框常用格式:常用格式:MsgBox(prompt,buttons,title)prompt字符串,指定消息框中显示的信息字符串,指定消息框中显示的信息 Buttons指定消息框中显示的按钮数目及形式、图标样式等,指定消息框中显示的按钮数目及
25、形式、图标样式等,缺省值为缺省值为vbOKOnly 常用的设置值见教材表常用的设置值见教材表2.6 Title指定消息框的标题,缺省值为工程名指定消息框的标题,缺省值为工程名 用户所选按钮的返回值用户所选按钮的返回值(见教材表见教材表2.7)可作为继续执行可作为继续执行程序的依据。程序的依据。返回目录返回目录例例2.4 Private Sub Form_Click()prompt=真的新增该条记录吗真的新增该条记录吗 answer=MsgBox(prompt,vbOKCancel,Add Record)If answer=vbOK Then Debug.Print 您选择的是您选择的是“确定确
26、定”按钮按钮 If answer=vbCancel Then Debug.Print 您选择的是您选择的是“取消取消”按钮按钮End Sub返回目录返回目录说明:说明:如果消息框中显示的信息过长,可使用回车符如果消息框中显示的信息过长,可使用回车符Chr(13)和换行符和换行符Chr(10)如果不需要返回值,可使用没有括号的如果不需要返回值,可使用没有括号的MsgBox语句:语句:MsgBox prompt,buttons,title 例,例,Msg=非法的数据输入非法的数据输入!&Chr(13)&Chr(10)&请重新输请重新输入入 Title=出错提示出错提示 MsgBox Msg,vbC
27、ritical,Title 返回目录返回目录u 功能:生成输入对话框功能:生成输入对话框 u 常用格式:常用格式:InputBox(prompt,title,default,xpos,ypos)prompt字符串,指定输入框中显示的信息字符串,指定输入框中显示的信息 Title指定输入框的标题,缺省值为工程名指定输入框的标题,缺省值为工程名 Default字符串,指定文本框中的初始内容,缺省为空。字符串,指定文本框中的初始内容,缺省为空。xpos和和ypos数值表达式,成对出现或者成对缺省,数值表达式,成对出现或者成对缺省,指定输入框左上角相对于屏幕的位置。指定输入框左上角相对于屏幕的位置。u
28、 InputBox函数一次只能输入一个值函数一次只能输入一个值 返回目录返回目录 例例2.5 Private Sub Form_Click()Dim Username Username=InputBox(输入姓名后单击输入姓名后单击确定确定,输入输入)Print UsernameEnd Sub 返回目录返回目录u常用数学函数见教材表常用数学函数见教材表2.8u几点说明:几点说明:由基本函数可导出所需的数学函数由基本函数可导出所需的数学函数 例如,例如,Log(X)/Log(N)可求出以可求出以N为底的对数为底的对数对对Rnd(N),N的值决定了的值决定了Rnd生成随机数的方式生成随机数的方式v
29、N0或者缺省:产生序列中的下一个随机数或者缺省:产生序列中的下一个随机数 vN=0:返回最近生成的随机数:返回最近生成的随机数 返回目录返回目录例如:随机产生例如:随机产生1-selenum之间的数之间的数 Randomize(Timer)Selenum=7 Rn=Int(Selenum)*Rnd+1)调用调用Rnd之前,使用之前,使用Randomize语句可产生不语句可产生不相同的随机数数列相同的随机数数列u常用字符串函数见教材表常用字符串函数见教材表2.9u几点说明:几点说明:表表2.9只对常用的字符串函数进行了简单的说明只对常用的字符串函数进行了简单的说明使用使用Str函数将数字转成字符
30、串时,字符串的首位函数将数字转成字符串时,字符串的首位一定是空格或是正负号。例如,一定是空格或是正负号。例如,S1=Str(67)返回返回 67 S2=Str(-67.5)返回返回-67.5 使用使用Val函数时,如果遇到不能识别为数字的字符,函数时,如果遇到不能识别为数字的字符,则停止转换。例如,则停止转换。例如,Val(“24 and 57”)返回返回24 Val(not 57)返回返回0 返回目录返回目录常用的日期函数见下表。其中,常用的日期函数见下表。其中,D表示日期类型表达式。表示日期类型表达式。返回目录返回目录函数名函数名功能简述功能简述示例示例Date/Time返回系统日期或返回
31、系统日期或时间时间Date 返回系统当前日期返回系统当前日期Now返回系统日期和返回系统日期和时间时间略略Year/Month/Day(D)返回年、月、日返回年、月、日Year(Now)返回返回2003WeekDay(D)返回星期几返回星期几WeekDay(Now)返回返回3Hour(time)返回小时数返回小时数Hour(Time)返回返回21 上述示例的当前日期时间是上述示例的当前日期时间是2003年年3月月18号、星号、星期三、晚上期三、晚上9点点10分。分。作用:作用:强制将一个表达式转换成某种特定数据类型强制将一个表达式转换成某种特定数据类型 返回目录返回目录函数名函数名返回类型返回类型函数名函数名返回类型返回类型 CBool(X)Boolean CInt(X)Integer CDate(X)Date CLng(X)Long CCur(X)Currency CSng(X)Single