提示:根据单一表达式来执行多种可能的动作时,采用Select Case语句更为方便。 三、应用举例:
在人事档案数据库中,职工编号和姓名是不可缺少的,为了避免忘了输入职工编号和姓名,本示例用 “区块格式”来检查这两项。Text1为编号,Text2为姓名,当这两项中的一项没有输入时,MsgBox函数将提示相关信息,并退出程序。
建立一个标准工程,在窗体上添加一命令按钮和两个文本框,将下面的程序粘贴过去。 Private Sub Command1_Click() If Trim(Text1.Text) = \ MsgBox \编号不能为空\ Exit Sub
'当Text1为空时,显示“编号不能为空”并退出程序 ElseIf Trim(Text2.Text) = \ MsgBox \请输入姓名\ Exit Sub
'当Text1不为空时,而Text2为空时,显示“ 请输入姓名”并退出程序 Else
MsgBox \输入正确\
'当两个文本都不为空时,显示“输入正确” End If End Sub
两个文本框都不输入,单击命令按钮,此时MsgBox显示“编号不能为空”;在Text1输入数字,单击命令按钮,此时MsgBox显示“请输入姓名”;在Text2输入文字,单击命令按钮,此时MsgBox显示“输入正确”。
使用“If块嵌套”,将日期由windows格式转换成常用的格式(例如由2007-8-21转变成200708)在上面的标准工程中,用下面的程序替换上面的程序,然后运行程序。你将看到Text1显示的日期为windows格式,Text2显示的日期为常用的格式。 Private Sub Form_Activate() Dim a '定义变量 a = Date '取日期 Text1.Text = a
If Right(Left(a, 3), 1) = \日期的第3位为\,系统为98 a = Left(a, 5) '取日期的前5位
If Right(a, 1) = \日期的第5位为\,月份小于10 a = Left(a, 4) '取日期的前4位
a = \年代前面加20,月份前面加0 Else '否则月份大于10
a = \年代前面加20 End If '
Else '否则系统为2000或xp a = Left(a, 7) '取日期的前7位
If Right(a, 1) = \日期的第7位为\,月份小于10 a = Left(a, 6) '取日期的前6位
a = Left(a, 4) & \月份前面加0 Else '否则月份大于10
a = Left(a, 4) & Right(a, 2) '屏蔽\ End If End If
Text2.Text = a End Sub
Input#语句
描述:从已打开的顺序文件中读出数据并将数据指定给变量。 一、语法:
Input#filenumber,varlist
Input#语句的语法包含下面部分: 部分 filenumber varlist 描述 必需。任何有效的文件号 必需。用逗号分界的变量列表,将文件中读出的值分配给这些变量。 其中的varlist参数的语法如下: var1[,var2[,var3[,...]]] var:变量名 二、说明:
该语句只能用于以Input或Binary方式打开的文件。由于Print#语句无法将各个单独的数据域正确分隔开,Input#语句在读出数据时,不能将文件的数据正确读入到变量中,因此常用来读出Write#语句写入的数据。在读出数据时,输入数据中的双引号符号(\将被忽略。 在输入数据项目时,如果已到达文件结尾,则会终止输入,并产生一个错误。 三、应用举例:
本示例使用Input#语句将文件内的数据读入两个变量中。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。 Private Sub Command1_Click() Dim MyStr1, MyStr2
Open \打开输入文件。 Do While Not EOF(1) '循环至文件尾。
Input #1, MyStr1, MyStr2 '将数据读入两个变量。
Debug.Print MyStr1, MyStr2 '在立即窗口中显示数据。 Loop
Close #1 '关闭文件。 End Sub
Private Sub Form_Activate()
Open \打开输出文件。 Write #1, \姓 名\王晓刚\写入数据 Write #1, \手机\
Write #1, \工作单位\嘉华软件公司\ Write #1, \姓 名\李海燕\
Write #1, \手机\
Write #1, \工作单位\海淀中心小学\ Close #1 '关闭文件 End Sub
Kill语句
描述:从磁盘上删除指定文件,允许使用统配符。 一、语法: Kill pathname
必需的pathname参数是用来指定一个要删除的文件名的字符串表达式。文件名应是包括扩展名在内的完整文件名。pathname可以包含目录(文件夹)、以及驱动器。 二、说明:
Kill支持多字符(*)和单字符(?)的通配符来指定多重文件。 三、应用举例:
本示例使用Kill语句删除磁盘中的文件。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。然后新建一个文本文件,起名为a。 Private Sub Command1_Click() On Error GoTo MyErr Kill \
MsgBox \文件已删除\ Exit Sub MyErr:
MsgBox \文件没找到\End Sub
Let语句
描述:将表达式的值赋给变量或属性。 一、语法:
[Let]varname=expression
Let语句的语法包含下面部分: 部分 let varname expression 描述 可选的。显式使用Let关键字也是一种格式,但通常都省略该关键字 必需的。变量或属性的名称;遵循标准变量命名约定 必需的。赋给变量或属性的值 二、说明:
为变量赋值,除了Variant变量外,表达式必须与变量具有相同的数据类型,否则,会在编译时出现错误。
如果将一种数值类型的表达式赋给另一种数值类型的变量时,会强制将该表达式的值转换为结果变量的数值类型。 三、应用举例:
该示例使用显式的Let语句将表达式的值赋给变量。 Private Sub Command1_Click()
Dim MyStr, MyInt, MyStr1, MyInt1 '下面的变量赋值使用了Let语句。 Let MyStr = \ Let MyInt = 15
'下面是没有使用Let语句的变量赋值。 MyStr1 = \你好!\ MyInt1 = 10
Debug.Print MyStr Debug.Print MyInt Debug.Print MyStr1 Debug.Print MyInt1 End Sub
LineInput#语句
描述:从已打开的顺序文件中读出一行并将字符串变量指定给变量。 一、语法:
Line Input#filenumber,varname
LineInput#语句的语法包含下面部分: 部分 filenumber varlist 描述 必需的。任何有效的文件号 必需的。有效变量或字符串变量名 二、说明:
Line Input#常用来读出Print#语句写入的数据。 三、应用举例:
本例使用Line Input#语句从一顺序文件读取线并赋值给一个变量。建立一个标准工程,在窗体上添加一个命令按钮,将下面的程序粘贴过去。 Private Sub Command1_Click() Dim TextLine
Open \打开输入文件。 Do While Not EOF(1) '循环至文件尾。 Line Input #1, TextLine Debug.Print TextLine Loop Close #1 End Sub
Private Sub Form_Activate()
Open \打开输出文件。
Print #1, Spc(5); \通信录\在字符串之前写入五个空格。 Print #1, '将空白行写入文件。
Print #1, \姓 名\手机\数据写入两个区。 Print #1, \王晓刚\
Print #1, \工作单位\嘉华软件公司\以空格隔开两个字符串。 Print #1,
Print #1, \姓 名\手机\
Print #1, \李海燕\ Print #1, \工作单位\海淀中心小学\ Close #1 '关闭文件 End Sub
Load语句
描述:把窗体或控件加载到内存中。 一、语法: Load object
object所在处是要加载的窗体或控件数组元素的名称。 二、说明:
在窗体还未被加载时,对窗体的任何引用都会自动加载该窗体。例如,我们常用Show方法显示窗体,Show方法在显示窗体前会先加载它,所以对于窗体一般不需要使用Load语句。如果某些窗体不需要显示,可以使用Load语句加载窗体时。
有时,事先并不知道窗体上需要某个控件的多少个实例,在这种情况下可以用Load语句来加载控件,建立一个动态窗体。 三、应用举例:
这个示例使用Load语句加载控件,建立一个标准工程,在窗体上添加一个标签和一个文本框。 1、 将这两个控件放在窗体顶部,标签在左,文本框在右,这两个控件对齐其它控间的标准。 2、 将这两个控件的Index属性设置为0,Visible属性设置为False。将下面的程序粘贴过去。 Private Sub Form_Load() Dim I As Integer
Dim MyStr(6) As String MyStr(1) = \编号\ MyStr(2) = \姓名\ MyStr(3) = \科室\ MyStr(4) = \职务\ MyStr(5) = \工资\ For I = 1 To 5 Load Label1(I) Load Text1(I)
Label1(I).Top = Label1(I - 1).Top + 1.5 * Label1(I).Height