机房收费系统(五)

机房收费系统中的充值窗体是一个非常经典的窗体,虽然看上去很简单,但是用到的知识点很多,正所谓“麻雀虽小五脏俱全”。我第一次写充值窗体的时候没有写入充值记录,也没有写充值的判定条件的代码,第二遍进行的时候才完成了相对的要求,总的来说也算是花了一些功夫把。

这个窗体中遇到了我以前从来没有遇到的一个困难,对于我来说也是一个新的学习的机会。我发现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
总的来说不是很难,但是给我涨了一些见识,而且让我加深了我对于困难的理解。一开始看到自增变量的时候,心理非常不舒服,感觉自己很难处理,但是结合以往的知识点,我最后终于处理了如何处理这个自增变量。这对我来说是一个巨大的进步,我最后获得了成功,并且满怀希望面对下一个挑战。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值