机房收费系统中的充值窗体是一个非常经典的窗体,虽然看上去很简单,但是用到的知识点很多,正所谓“麻雀虽小五脏俱全”。我第一次写充值窗体的时候没有写入充值记录,也没有写充值的判定条件的代码,第二遍进行的时候才完成了相对的要求,总的来说也算是花了一些功夫把。
这个窗体中遇到了我以前从来没有遇到的一个困难,对于我来说也是一个新的学习的机会。我发现Recharge表中主键的名字叫做serial,在英文中是连续的意思,这应该是一个自增变量,因为Recharge表中没有一个属性适合作为主键,没有办法满足需要的对应关系,所以引入了一个自增变量,具体代码如下:
Private Sub Command1_Click()
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim mrc2 As ADODB.Recordset
Dim MsgText As String
Dim cash1 As Integer
Dim cash2 As Integer
Dim a As Integer
Dim b As Integer
'卡号是否存在
txtSQL = "select * from student_Info where cardno = '" & Trim(txtCardno.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then
MsgBox "没有关于此卡的信息", vbOKOnly + vbExclamation, "警告"
Else
'卡号是否退卡
txtSQL = "select * from student_Info where cardno='" & Trim(txtCardno.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If Trim(mrc.Fields(10)) = "未使用" Then
MsgBox "该卡号已经退卡,请重新输入!", vbOKOnly, "提示"
txtCardno.SetFocus
txtCardno = ""
Exit Sub
End If
cash1 = mrc.Fields(7)
cash2 = cash1 + Val(txtRecharge.Text)
mrc.Fields(7) = cash2
End If
mrc.Update
txtSQL = "select count(*) from ReCharge_Info"
Set mrc2 = ExecuteSQL(txtSQL, MsgText)
a = mrc2.Fields(0)
a = Val(a)
b = a + 24
txtSQL = "select * from ReCharge_Info where cardno = '" & Trim(txtCardno.Text) & "'"
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
mrc1.AddNew
'给每个字段赋值
mrc1.Fields(0) = b
mrc1.Fields(1) = mrc.Fields(1)
mrc1.Fields(2) = mrc.Fields(2)
mrc1.Fields(3) = Val(txtRecharge.Text)
mrc1.Fields(4) = Date
mrc1.Fields(5) = Time
mrc1.Fields(6) = mrc.Fields(9)
mrc1.Fields(7) = mrc.Fields(11)
'更新数据库
mrc1.Update
'显示充值信息
txtShow.Text = "退款卡号:" & txtCardno.Text & vbCrLf & vbCrLf & _
"上次卡内余额:" & Val(mrc.Fields(7)) - Val(txtRecharge.Text) & vbCrLf & vbCrLf & _
"现在卡内余额:" & mrc.Fields(7) & vbCrLf & vbCrLf & _
"充值日期:" & Date & vbCrLf & vbCrLf & _
"退款时间:" & Time & vbCrLf & vbCrLf & _
"充值老师:" & 13
MsgBox "充值成功!", vbOKOnly, "提示"
'关闭数据集对象
mrc1.Close
mrc.Close
Me.Hide
End Sub总的来说不是很难,但是给我涨了一些见识,而且让我加深了我对于困难的理解。一开始看到自增变量的时候,心理非常不舒服,感觉自己很难处理,但是结合以往的知识点,我最后终于处理了如何处理这个自增变量。这对我来说是一个巨大的进步,我最后获得了成功,并且满怀希望面对下一个挑战。
1756

被折叠的 条评论
为什么被折叠?



