最近在做机房收费系统,跟之前学生不同的是,每个窗体不仅查一个表,所有逻辑思维就显得格外的重要。
看师哥师姐的博客会发现,他们在敲一个窗体的时候会画一张流程图,也可以说是自己的逻辑,先判断什么在判断什么,画图工具是一个网站,我把连接放在下面。
一张图胜过前言万语,这是我画的充值窗体的流程图!
思路理清了,就着手写代码,我的代码有很多冗余的地方,还请鉴赏!
Dim mrc As ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
Dim mrcc As ADODB.Recordset
If Not testtxt(txtSID.Text) Then
MsgBox "请输入卡号!", 48, "警告"
txtSID.SetFocus
Exit Sub
End If
If Not testtxt(txtRecharge.Text) Then
MsgBox "请输入金额!", 48, "警告"
txtRecharge.SetFocus
Exit Sub
End If
txtsql = "select * from student_info where cardno = '" & Trim(txtSID.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF Then
MsgBox "该卡号不存在!", 48, "警告"
mrc.Close
txtSID.SetFocus
Exit Sub
Else
mrc.Close
End If
txtsql = "select * from BasicData_info"
Set mrc = ExecuteSQL(txtsql, msgtext)
If Val(txtRecharge.Text) < mrc.Fields(5) Then
MsgBox "充值金额不能小于" & Trim(mrc.Fields(5)) & "元", 48, "警告"
mrc.Close
Exit Sub
End If
mrc.Close
txtsql = "select * from recharge_info where cardno = '" & Trim(txtSID.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
txtsql = "select * from student_info where cardno = '" & Trim(txtSID.Text) & "'"
Set mrcc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF Then
mrc.AddNew
mrc.Fields(1) = mrcc.Fields(1)
mrc.Fields(2) = Trim(txtSID.Text)
mrc.Fields(3) = Val(Trim(txtRecharge.Text)) + mrc.Fields(3)
mrc.Fields(4) = Trim(Date)
mrc.Fields(5) = Trim(Time)
mrc.Fields(6) = UserName
mrc.Fields(7) = Trim("未结账")
mrc.Update
mrc.Close
mrcc.Close
Else
mrc.Fields(1) = mrcc.Fields(1)
mrc.Fields(2) = Trim(txtSID.Text)
mrc.Fields(3) = Val(Trim(txtRecharge.Text)) + mrc.Fields(3)
mrc.Fields(4) = Trim(Date)
mrc.Fields(5) = Trim(Time)
mrc.Fields(6) = UserName
mrc.Fields(7) = Trim("未结账")
mrc.Update
mrc.Close
mrcc.Close
End If
txtsql = "select * from student_info where cardno = '" & Trim(txtSID.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
mrc.Fields(7) = Val(Trim(txtRecharge.Text)) + mrc.Fields(7)
mrc.Fields(12) = Trim(Date)
mrc.Fields(13) = Trim(Time)
mrc.Update
mrc.Close
txtsql = "select * from student_info where cardno = '" & txtSID.text & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
Text1.Text = "充值卡号:" & txtSID.Text & vbCrLf & "上次卡内的余额:" & Trim(mrc.Fields(7)) - txtRecharge.Text & vbCrLf & "现在卡内的余额:" & mrc.Fields(7) & vbCrLf & "充值日期:" & mrc.Fields(12) & vbCrLf & "充值时间:" & mrc.Fields(13) & vbCrLf & "充值老师:" & UserName
MsgBox "充值成功!", 48, "提示"