下机操作是机房这的一个难点,充分的考察了我们对数据库的运用!
对于下机操作,缕清逻辑后,就会变得很容易!
思路
简单的画了一下流程图还有下机时需要用到的表以及它的相关操作!
缕清了这些接下来就是代码实现了!
代码
1、查询基本参数
是所谓的基本参数就是在basicdate_info中的值,例如一小时需要花费多少钱等等!
txtSQL4 = "select* from basicdata_info"
Set mrc4 = executeSQL(txtSQL4, msgtext4)
t1 = Trim(mrc4.Fields(0))
t2 = Trim(mrc4.Fields(1))
t3 = Trim(mrc4.Fields(3))
t4 = Trim(mrc4.Fields(4))
将查询到的这些值赋值给t1-4
2、计算所用的时间
计算所用的时间用到了一个函数“DateDiff”
datediff函数的用法如下:
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
interval 参数的设定值如下:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
firstdayofweek 参数的设定值如下:
常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
常数 值 描述
vbUseSystem 0 用 NLS API 设置。
vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。
vbFirstFullWeek 3 从第一个无跨年度的星期开始。
程序中用到的代码如下:
'计算分钟数
date1 = Trim(mrc2.Fields(6))
time1 = Trim(mrc2.Fields(7))
date2 = Trim(mrc2.Fields(8))
time2 = Trim(mrc2.Fields(9))
costdate = DateDiff("n", date1, date2)
costtime = DateDiff("n", time1, time2)
alltime = costdate + costtime
mrc2.Fields(10) = alltime
3、计算所用金钱
计算所花费的金钱时,要注意,分为固定用户和临时用户两种,两种所用的系数不一样!
'判断用户类型并计算上机的时间和金钱
If Trim(mrc.Fields(14)) = "固定用户" Then
If mrc2!consumetime < t3 Then '上机不足设定最小分钟数,不收费!
mrc2!consume = "0.0"
ElseIf mrc2!consumetime Mod 60 = 0 Then
mrc2!consume = Round(Trim(mrc2!consumetime) \ 60) * t1
Else
mrc2!consume = (Round(Trim(mrc2!consumetime) \ 60) + 1) * t1
End If
Else '如果用户类型为临时用户
If mrc2!consumetime < t3 Then
mrc2!consume = "0.0"
ElseIf mrc2!consumetime Mod 60 = 0 Then
mrc2!consume = Round(Trim(mrc2!consumetime) \ 60) * t2
Else
mrc2!consume = (Round(Trim(mrc2!consumetime) \ 60) + 1) * t2
End If
End If
4、其他
其他的就是一些简单的常规操作啦!
结束语
下机这个部分还有选中用户下机和所有学生下机,下次在来分享!、
感谢你的阅读!