前言:
结账部分是机房的一个重点;
思路:
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