机房收费系统之结账
2017-12-12 19:55
246 查看
前言:
结账部分是机房的一个重点;
思路:
1.通过UserID查询姓名;(通过Combo1的Click事件,将表中姓名栏信息赋给Combo2)
2.点击SSTab控件查询到相应表中信息;
3.结账更新相应表中信息(将student表,recharge表,cancelCard表中未结账部分更新为结账,并更新checkDay和ckeckWeek表)
问题及重点代码:
1.数据类型不要随便更改,会报错;
2.汇总部分:
售卡张数=注册的卡号个数
退卡张数=cancelCard表中退卡的个数
总售卡数=售卡张数-退卡张数
退卡金额=退卡的金额数总和
充值金额=student表中的注册金额和充值金额总和(充值金额会更新到student表recharge列中)
临时收费总和=上机中花费的金额总和(line表中的Cost金额)
应收金额=临时收费金额+充值金额-退卡金额
结账部分是机房的一个重点;
思路:
1.通过UserID查询姓名;(通过Combo1的Click事件,将表中姓名栏信息赋给Combo2)
2.点击SSTab控件查询到相应表中信息;
3.结账更新相应表中信息(将student表,recharge表,cancelCard表中未结账部分更新为结账,并更新checkDay和ckeckWeek表)
问题及重点代码:
1.数据类型不要随便更改,会报错;
2.汇总部分:
售卡张数=注册的卡号个数
退卡张数=cancelCard表中退卡的个数
总售卡数=售卡张数-退卡张数
退卡金额=退卡的金额数总和
充值金额=student表中的注册金额和充值金额总和(充值金额会更新到student表recharge列中)
临时收费总和=上机中花费的金额总和(line表中的Cost金额)
应收金额=临时收费金额+充值金额-退卡金额
Private Sub Combo1_Click() txtSQL3 = "select * from User_Info where UserID = '" & Trim(Combo1.Text) & "'" Set mrc3 = ExecuteSQL(txtSQL3, MsgText) Combo2.Text = mrc3.Fields(3) '把查询到的信息赋值给Combo2.Text; End Sub 结账部分: Private Sub Command1_Click() '点击结账让文本框清空 txtCard.Text = "" txtCancelCard.Text = "" ... txtSQL5 = "select * from checkDay_Info" Set mrc5 = ExecuteSQL(txtSQL5, MsgText) txtSQL = "select sum(cash) from student_Info" Set mrc = ExecuteSQL(txtSQL, MsgText) mrc5.AddNew '更新checkDay表 mrc5.Fields(0) = mrc.Fields(0) mrc5.Fields(1) = Val(txtAddCash.Text) mrc5.Fields(2) = Val(txtCostCash.Text) mrc5.Fields(3) = Val(txtCancelCash.Text) mrc5.Fields(4) = Val(txtAllCash.Text) mrc5.Fields(5) = Date mrc5.Update mrc5.Close mrc6.AddNew '将表中记录更新到checkWeek表中 mrc6.Fields(0) = mrc.Fields(0) mrc6.Fields(1) = Val(txtAddCash.Text) mrc6.Fields(2) = Val(txtCostCash.Text) mrc6.Fields(3) = Val(txtCancelCash.Text) mrc6.Fields(4) = Val(txtAllCash.Text) mrc6.Fields(5) = Date mrc6.Update mrc6.Close '以学生表为例,更新学生表 txtSQL = "select * from student_Info where UserID = '" & Trim(Combo1.Text) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) Do While Not mrc.EOF mrc!Ischeck = "已结账" mrc.Update mrc.MoveNext Loop mrc.Close '同样更新money表 '更新退卡表 MsgBox "结账成功!" End Sub
Private Sub SSTab_Click(PreviousTab As Integer) '以购卡为例,代码如下: txtSQL = "select * from student_Info where Ischeck = '未结账' and UserID = '" & Trim(Combo1.Text) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) '将查询内容显示在表格控件中 With MSHFlexGrid1 .Rows = 2 .CellAlignment = 4 .TextMatrix(1, 0) = "学号" .TextMatrix(1, 1) = "卡号" .TextMatrix(1, 2) = "日期" .TextMatrix(1, 3) = "时间" '判断是否移动到数据集对象的最后一条记录 Do While Not mrc.EOF .Rows = .Rows + 1 .CellAlignment = 4 .TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(1)) .TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(0)) .TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(11)) .TextMatrix(.Rows - 1, 3) = Trim(mrc.Fields(12)) '移动到下一条记录 mrc.MoveNext Loop End With 充值、退卡、临时用户同上; txtSQL2 = "select sum(cancel_Cash) from cancelCard_Info where status = '未结账' and UserID = '" & Trim(Combo1.Text) & "'" Set mrc2 = ExecuteSQL(txtSQL2, MsgText) txtSQL = "select sum(cash) from student_Info where Ischeck = '未结账' and UserID = '" & Trim(Combo1.Text) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) txtSQL4 = "select sum(costCash) from line_Info " Set mrc4 = ExecuteSQL(txtSQL4, MsgText) If IsNull(Trim(mrc.Fields(0))) Then '为空 txtAddCash.Text = "0" Else txtAddCash.Text = mrc.Fields(0) End If If IsNull(Trim(mrc2.Fields(0))) Then txtCancelCash.Text = "0" Else txtCancelCash.Text = mrc2.Fields(0) End If If IsNull(Trim(mrc4.Fields(0))) Then txtCostCash.Text = "0" Else txtCostCash.Text = mrc4.Fields(0) End If txtAllCash.Text = Val(txtAddCash.Text) + Val(txtCostCash.Text) - Val(txtCancelCash.Text) If SSTab.Caption = "退出" Then Unload Me End If End Sub