近期,我们大部分人进度都进入到了机房收费系统,算起来到现在我已经开始了这 个项目两个星期了,目前已经将基本的功能全部都实现了。在这里总结一些自己当 初没有涉及过得或者已经遗忘了的知识点。 1.msgBox的应用 当我们使用这个控件的时候不知道大家发现没有,如果只是`MsgBox("是否确定 要退出",vbOKOnly + vbExclamation,"提示")`的话,不论你单击是 或者否,他都会默认你选择了是,然后继续执行下去。感觉这一点很不人性化,所 以继续挖掘了一下,发现是这样设计的:
dim msg
msg = MsgBox("是否确定要退出",vbYesNo + vbExclamation,"提示")
If msg = vbYes Then
....
else
....
end if
这样的话就可以了,具体就不在解释了。 2.DateDiff函数的使用
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])
示例:`Onlinetime = DateDiff("n",mrd.Fields(9),Now)`, 这是我在机房中用到的。
其中interval分别为,yyyy年,q季,m月,y一年中的日数,d日,w一周的
日数,ww周,h时,n分钟,s秒。而我的例子,求得就是now和mrd.Fields(9)之间相差的分钟数,简洁了很多。 (感谢晓洁的帮助!)
3.获得当前计算机的名
VBA.Environ("computername")
4.GoTo语句的使用
相信大家还记得当初的on error goto myerror
。这其中也是用到了goto语句。其无条件地转移到过程中指定的行Goto line。但太多的 GoTo 语句,会使程序代码不容易阅读及调试。所有我们还是尽可能使用结构化控制语句(Do...Loop、For...Next、If...Then...Else、Select Case)
5.For…Next 语句 和select case语句 的使用
相信这些大家也很熟悉,不知道大家有没有很好的利用到。我对他的第一次应用是在组合查询时候,添加数据的时候憋出来的一点想法,当时不太会就查了一下。在这分享一下。
For b = 0 To 2 Select Case thename
With Combo2(b) Case "卡号"
.AddItem "=" tName = "cardno"
.AddItem "<" Case "姓名"
.AddItem ">" tName = "studentname"
.AddItem "<>" Case "上机"日期
End With tName = "ondate"
Next b End select
具体的用法也就不再过对赘述了。相信这些运用好了可以节省好多力气。
6.Val函数的应用
Val(string),必要的 string 参数可以是任何有效的字符串表达式.。这是我在对比充值金额是否大于设定最小值的时候设定的。If Val(Trim(txtcash.Text)) < Trim(mrd.Fields(5)) Then
。 这样的话就可以正常运行了。
7.TextBox中的换行。
其中在我们运用text控件的时候,有时候需要其中的内容分行显示,这里我可以用于Asccii码中的 13 CR (carriage return) 回车键。除此之外还可以运用vbNewLine,来进行换行。(示例:"充值卡号:" & vbNewLine & "
上次卡内余额” )用法和Asccii用法类似。但不管用哪一种方法,有一点需要注意的就是,将该text控件中Mulitiline属性设为True。给予它这个权限,否则不论我们怎么设置都是无用功。