【第一次机房收费系统】学生下机
2018-01-20 11:43
295 查看
在敲普通用户学生上机装态查看的时候,里面有几个点大家需要注意一下。
查询基本没什么问题,运用的是组合查询的相关知识。点此查看组合查询知识
显示全部前面也提到过,运用代码实现将数据库中的信息调用到MSHFlexgrid控件中。
其实最好玩的还是上机管理这部分,先不管这个功能放在这里合适不合适,反正学到了就是自己的。
这两个功能非常类似,唯一区别就是一个全部下线,一个选中下线。
还是那句话,先把思路理清,后面的就不是事了。
以所有学生下线为例。
涉及到的表:online student line basicdata
展示部分代码。
选中学生下机多了一个选择学生的过程,也很简单。
弄完这个,学生下机就搞定了。
查询基本没什么问题,运用的是组合查询的相关知识。点此查看组合查询知识
显示全部前面也提到过,运用代码实现将数据库中的信息调用到MSHFlexgrid控件中。
其实最好玩的还是上机管理这部分,先不管这个功能放在这里合适不合适,反正学到了就是自己的。
这两个功能非常类似,唯一区别就是一个全部下线,一个选中下线。
还是那句话,先把思路理清,后面的就不是事了。
以所有学生下线为例。
涉及到的表:online student line basicdata
展示部分代码。
'定义所需变量' Dim OnlineSQL As String, LineSQL As String, BasicDataSQL As String, studentSQL As String Dim mrcBasicData As ADODB.Recordset Dim mrcLine As ADODB.Recordset Dim mrcStudent As ADODB.Recordset Dim mrcOnline As ADODB.Recordset Dim OnlineMsgtext As String, LineMsgtext As String, BasicdataMsgtext As String, Studentmsgtext As String Dim intLineTime As Integer Dim intConsumeTime As Integer Dim curConsume As Currency Dim curBalance As Currency Dim CostDate As Integer Dim CostTime As Integer Dim a As Integer Dim b As Integer '删除online表中的信息,让所有的学生下线' OnlineSQL = "select * from online_Info " Set mrcOnline = ExecuteSQL(OnlineSQL, OnlineMsgtext) '如果没有人上线,提示' If mrcOnline.RecordCount = 0 Then MsgBox "没有学生上线!", vbOKOnly + vbInformation, "苏轼提醒您" Exit Sub End If a = myFlexGrid.rows - 1 If myFlexGrid.rows = 0 Then MsgBox "没有学生上线!", vbOKOnly + vbInformation, "苏轼提醒您" Exit Sub End If myFlexGrid.rows = 1 For b = a To 1 Step -1 '从basicdata表中读取数据' BasicDataSQL = "select * from basicdata_Info" Set mrcBasicData = ExecuteSQL(BasicDataSQL, BasicdataMsgtext) '从student表中读取数据' studentSQL = "select * from student_Info" Set mrcStudent = ExecuteSQL(studentSQL, Studentmsgtext) '从line表中读取数据' LineSQL = "select * from line_Info" Set mrcLine = ExecuteSQL(LineSQL, LineMsgtext) '从online表中读取数据' OnlineSQL = "select * from online_Info" Set mrcOnline = ExecuteSQL(OnlineSQL, OnlineMsgtext) CostTime = DateDiff("n", Trim(Hour(Time)), Trim(mrcOnline!OnTime)) CostDate = DateDiff("n", Trim(Date), Trim(mrcOnline!OnDate)) intLineTime = Format(Str(Val(CostTime) + Val(CostDate))) '判断实际在线时间是否小于准备时间,若小于则消费时间为0' If intLineTime < mrcBasicData!prepareTime Then intConsumeTime = 0 '判断实际在线时间是否小于最低消费时间,若小于,则消费时间为最低消费时间' ElseIf intLineTime < mrcBasicData!leastTime Then intConsumeTime = mrcBasicData!leastTime Else intConsumeTime = Round(intLineTime / mrcBasicData!unitTime) * mrcBasicData!unitTime 'round()函数为四舍五入函数' End If '计算消费金额(消费金额=消费时间/30*用户类型的半小时费用)' '固定用户(为什么要除以30) 最小计费单位' If Trim(mrcStudent.Fields(14)) = "固定用户" Then curConsume = intConsumeTime / 30 * mrcBasicData!Rate Else curConsume = intConsumeTime / 30 * mrcBasicData!tmpRate End If '计算余额(账户余额=原账户余额-消费金额)' curBalance = mrcStudent!cash - curConsume '更新学生信息表的余额' mrcStudent.Fields(7) = curBalance mrcStudent.Update mrcStudent.Close '更新上机记录表(line表)' LineSQL = "select * from line_Info" Set mrcLine = ExecuteSQL(LineSQL, LineMsgtext) mrcLine.AddNew '更新上机记录表(line表)' LineSQL = "select * from line_Info" Set mrcLine = ExecuteSQL(LineSQL, LineMsgtext) mrcLine.AddNew mrcLine.Fields(1) = Trim(mrcOnline!cardno) …… mrcLine.Fields(13) = "强制下机" mrcLine.Fields(14) = Trim(Environ("computername")) mrcLine.Update '删除在线表中的信息' OnlineSQL = "select * from online_Info" Set mrcOnline = ExecuteSQL(OnlineSQL, OnlineMsgtext) mrcOnline.Delete mrcOnline.Update Next b MsgBox "所有学生已下线!", vbOKOnly + vbInformation, "苏轼提醒您"
选中学生下机多了一个选择学生的过程,也很简单。
'选中 删除' myFlexGrid.RemoveItem myFlexGrid.RowSel
弄完这个,学生下机就搞定了。
相关文章推荐
- 第一次机房收费系统总结
- 第一次机房收费系统—信息的输入与输出
- 第一次机房收费系统-回顾总结(一)
- 第一次机房收费系统——饮血
- 第一次机房收费系统之导出到Excel
- 第一次机房收费系统—宏观认识
- 机房收费系统中——存储过程中加入事务,实现学生注册
- 机房收费系统中——存储过程中加入事务,实现学生注册
- 第一次机房收费系统--收取金额
- 机房收费系统(三)选中学生强制下机
- 【软工学习】第一次机房收费系统文档
- 机房收费系统学生下机结账小结
- 机房收费系统中——存储过程中加入事务,实现学生注册
- 《第一次机房收费系统》总结四 循环结构运用 (全部下机、实时结算、导出Excel表)
- [第一次机房收费系统]修改密码界面优化
- 第一次机房收费系统-回顾总结(三)
- 机房收费系统的“学生注册:流程图展示:
- 第一次机房收费系统——电刀
- 第一次机房收费系统——轻语
- 第一次机房收费系统——组合查询