Visual Basic 6.0 作为强大的可视化编程软件长期以来深受大家喜爱。为此我自我开始总结部分的实用代码及实用函数技巧。本篇为第一篇。

 

1.变量的运用。

  变量 在任何编程语言中都发挥着广泛的用途,当然VB也不例外。VB6的变量类型有许多,如 整型(Integer)% ,长整型(Long)& ,单精度型(Single)! ,双精度型(Double)# ,货币型(Currncy)$ ,字符串型(String)@ 等等,常用于数据的赋值。创建变量前应注意要创建哪一种,是局部(一般为Dim\Static语句)还是全局(一般为Public语句)。当然自定义的变量名要注意是否会和系统常量冲突,比如vbokonly、vbQuestion等等。如果想要避免写错变量的麻烦,可以禁止声明静态变量,则在声明段中加入 Option Explicit 即可。

公式是这样的:Dim\Static\Public  变量名  As  变量类型(留空或填写数组或填写函数)

  如果你想在使用一个变量之前并不必先声明这个变量,也可以使用隐式变量。隐式变量可以直接写,比如我要创建整型变量LIM,值为123,则可以直接定义:LIM=123

隐式变量也有弊端,那就是如果编写者把名称写错,系统很难检查出错误,则运行时可能获得不满意的结果。所以使用显式声明是个良好的习惯。

  如果在写程序时将使用到大量的变量时,可以使用 “,” 号隔开,写在模块里。

  定义数组变量时,如果想保留原有数据,可以使用具有 Preserve 关键字的 ReDim 语句,避免数组中的数据清空。 例如: Public SF(100 to 111,100 to 111) as Integer,RR(222 to 333) as single

 

2.随机数的运用。

  我们在编程过程中,有时会用到随机数,那么随机数一般怎么创建呢?

来看看这句:i=int(20 * rnd )+ 1)

这是什么意思呢? 首先,int是取整的意思,表示生成的随机数i为整数。其次是定义取值范围,(20*rnd)+1)表示1-20之间的随机数。合起来就是i取1-20之间随机一个整数。

在某个范围内产生随机整数,可使用以下公式: Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 

这里的upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。 
若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。

 

3.部分常用函数

一、算术函数

1、Abs(<表达式>)

返回数值表达式的绝对值。

如:Abs(-3)=3

2、Int(<数值表达式>)

向下取整。

如:Int(3.25)=3,Int(-3.25)=-4

3、Fix(<数值表达式>)

取整函数。

如:Fix(3.25)=3,Fix(-3.25)=-3

4、Round(<数值表达式>[,<表达式>])

按指定位数四舍五入。

如:Round(3.2553,1)=3.3,Round(3.754,0)=4

5、sqr(<数值表达式>)

计算平方根。

如:sqr(9)=3

6、Rnd(<数值表达式>)

Int(Rnd*(b-a)+a ):      在[a,b )区间内产生随机整数

Randomize[(x)] :       每次运行时,要产生不同序列的随机数

如:   

     产生1-100的随机数:      Int(Rnd *100)+1

     产生一个二位数:         Int(Rnd*90)+10

     产生1-30的随机数:       Int(Rnd*30)+1

二、字符串函数

1、InStr([Start,]<str1>,<str2>[,Compare])

求str2在字符串str1中最早出现的位置(Start设置开始查找位置,缺省为1;Compare指定比较方法:0为二进制比较,1为不区分大小写,2用于数据库信息比较)。

如:str1=”98765”

    Str2=”65”

    S=InStr(str1,str2)              ‘返回4

    S=InStr(3,"aSsiAB","a",1)       ‘返回5 从字符s开始找,不区分大小写

2、Len(<字符串表达式>或<变量名>)

返回字符串所含字符数。

如:Dim str As String*10

    Dim i

    Str=”123”

    i=12

    len1=Len(“12345”)             ‘返回5

    len2=Len(12)                    ‘出错

    len3=Len(i)                     ‘返回2

    len4=Len(“考试中心”)          ‘返回4

    len5=Len(str)                   ‘返回10

3、字符串截取函数

Left(<字符串表达式>,<N>)        ‘从字符串左边起截取N个字符

Right(<字符串表达式>,<N>)       ‘从字符串右边起截取N个字符

Mid(<字符串表达式>,<N1>,<N2>)       ‘从字符串第N1个起截取N2个字符(如果N2省

略,则从N1个起截到底)

如:str1=”opqrst”

    Str2=”计算机等级考试”

    Str=Left(str1,3)                ‘返回“opq”

    Str=Left(str2,4)                ‘返回“计算机等”

    Str=Right(str1,2)               ‘返回“st”

    Str=Left(str2,2)                ‘返回“考试”

    Str=Mid(str1,4,2)               ‘返回“rs”

    Str=Mid(str2,4)                 ‘返回“计算机等级考试”

4、Space(<数值表达式>)

返回数值表达式值指定的空格字符数。

如: st1r Space(3)                ‘返回3个空格字符

5、Ucase(<字符串表达式>)          ‘小写转换成大写

   Lcase(<字符串表达式>)          ‘大写转换成小写

如: str1 =Ucase(“fHkrYt”)        ‘返回”FHKRYT”

 Str2 =Lcase(“fHkrYt”)            ‘返回”fhkryt”

6、LTrim(<字符串表达式>)         ‘删除字符串的左边开始空格

RTrim(<字符串表达式>)            ‘删除字符串的右边(尾部)空格

Trim(<字符串表达式>)             ‘删除字符串的开始和尾部空格

 

三、日期/时间函数

1、获取系统日期和时间函数

Date()                 ‘返回系统日期,2010-11-10

Time()                 ‘返回系统时间,9:45:00

Now()                  ‘返回系统日期和时间,2010-11-10 9:45:30

2、截取日期分量

Year(<表达式>)          ‘返回日期表达式年份整数

Month(<表达式>)         ‘返回日期表达式月份整数

Day(<表达式>)           ‘返回日期表达式日期整数

WeekDay(<表达式>)       ‘返回日期表达式1-7的整数

3、截取时间分量

Hour(<表达式>)          ‘返回时间表达式小时数

Minute(<表达式>)        ‘返回时间表达式分钟数

Second(<表达式>)        ‘返回时间表达式秒数

4、日期/时间增加或减少一个时间间隔

DateAdd(<间隔类型>,<间隔值>,<表达式>)  

对表达式表示的日期按照间隔参数表示时间间隔减去指定的时间间隔。

如:

D=#2004-2-29 10:40:11#

D1=DateAdd(“yyyy”,3,D)  ‘返回#2007-2-29 10:40:11#,日期加3年

D2=DateAdd(“q”,1,D)     ‘返回#2004-5-29 10:40:11#,日期加1季度

D3=DateAdd(“m”,-2,D)    ‘返回#2003-12-29 10:40:11#,日期减2月

D4=DateAdd(“d”,3,D)     ‘返回#2004-3-3 10:40:11#,日期加3日

D5=DateAdd(“ww”,2,D)    ‘返回#2004-3-14 10:40:11#,日期加2周

D6=DateAdd(“n”,-150,D)  ‘返回#2004-2-29 8:10:11#,日期减150分钟

间隔类型:    

设置        描述

yyyy        年

q           季

m           月

y           一年的日数

d           日

w           一周的日数

ww          周

h           时

n           分

s           秒

5、计算两个日期间隔值函数

DateDiff(<间隔类型>,<日期1>,<日期2>[,W1][,W2])  

返回日期1和日期2之间按照间隔类型的时间间隔数目。

说明:W1为可选项,指定一星期的第一天是星期几的常数,省略为vbSunday即周日返回1;W2可选项,指定一年的第一周的常数,缺省为vbFirstJanl即1月1日的星期为第一周即:

常数              值              描述

vbFirstJanl         1            从包含1月1日的星期开始(缺省)

vbFirstFourDays     2            从第一个其大半个星期在新的一年的一周开始

vbFirstWeek         3            从第一个无跨年的星期开始

如:

D1=#2003-5-28 20:8:36#

D2=#2004-2-29 10:40:11#

n1=DateDiff(“yyyy”,D1,D2)       返回1 间隔为1年

n2=DateDiff(“q”,D1,D2)          返回3 间隔为3季度

n3=DateDiff(“m”,D1,D2)          返回-9 间隔为9月

n4=DateDiff(“ww”,D1,D2)         返回40 间隔为40周

n5=DateDiff(“n”,D1,D2)          返回398312 间隔为398312分钟

6、返回日期指定时间部分函数

DatePart(<间隔类型>,<日期>[,W1][,W2]) 

返回日期中按照间隔类型的指定的时间间隔部分值。

如:

D=#2004-2-29 10:40:11#

n1=DatePart(“yyyy”,D)       返回2004

n2=DatePart(“d”,D)          返回29

n3=DatePart(“ww”,D)         返回10

7、返回包含指定年月日的日期函数

DateSerial(表达式1,表达式2,表达式3) 

返回由表达式1为年、表达式2为月、表达式3为日而组成的日期值,但必须是有效的值,如果一个参数超过值,则会进到下一个较大值上。

D= DateSerial(2008,2,29)        返回#2008-2-29#

D= DateSerial(2008-1,8-2,0)     返回#2007-5-31#

四、类型转换函数

1、字符串转换字符代码函数:Asc(<字符串表达式>)

返回字符串首字母的ASCII的值。

如:s=Asc(“abcdef”)         返回97

2、字符代码转换成字符函数:Chr(<字符代码>)

返回字符代码相关的字符。

如:s=Chr(70)           返回f

s=Chr(13)               返回回车符

3、数字转换成字符串函数:Str(<数值表达式>)

将数值表达式值转换成字符串。

如:s=Str(99)           返回” 99”注意前有一个空格

s=Str(-6)               返回”-6”

4、字符串转换成数字函数:Val(<字符串表达式>)

将数字字符转换成数值型数字。

如:s=Val(“16”)         返回16

s=Val(“3 45”)           返回345

s=Val(“76af89”)         返回76

5、字符串转换日期函数:DateValue(<字符串表达式>)

将字符传转换成日期值。

如:D= DateValue(“February 29,2004”)               返回#2004-2-29#

6、Nz函数:Nz(表达式或字段属性值[,规定值])

当一个表达式或字段属性值为Null时,函数可返回0、零长度字符串(””)或其他指定值。

例如,可使用该函数将Null值转换为其他值。

当省略“规定值”时,如果“表达式或字段属性值”为数值型且值为Null,Nz返回0;反之为字符型且值为Null,Nz返回空字符串(“”).

 

 

结束