机房收费系统之上机

流程图


部分代码:

'判断是否添加卡号
    If (txtcardNo = "") Then
        MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "提示"
        txtcardNo.SetFocus
        Exit Sub
    End If
     '判断卡号是否为数字
    If Not IsNumeric(txtcardNo.Text) Then
        MsgBox "卡号请输入数字!", vbOKOnly + vbExclamation, "提示"
        txtcardNo.Text = ""
        txtcardNo.SetFocus
        Exit Sub
    End If
    '判断此卡是否注册
      txtSQL = "select * from student_Info where cardno = '" & txtcardNo.Text & "'"
      Set mrcStu = ExecuteSQL(txtSQL, MsgText)
      If mrcStu.EOF Then
            MsgBox "此卡不存在或已停用!", vbOKOnly + vbExclamation, "提示"
            txtcardNo.Text = ""
            txtcardNo.SetFocus
            mrcStu.Close
            Exit Sub
      End If
      '判断此卡是否使用
       txtSQL = "select * from student_info where status='" & "使用" & "' and cardno='" & txtcardNo.Text & "'"
        Set mrcStu = ExecuteSQL(txtSQL, MsgText)
        If mrcStu.EOF Then
            MsgBox "此卡不使用!", vbOKOnly + vbExclamation, "提示"
            txtcardNo.Text = ""
            txtcardNo.SetFocus
            mrcStu.Close
            Exit Sub
      End If
     '判断余额情况
      txtSQL = "select * from BasicData_Info"
      Set mrc = ExecuteSQL(txtSQL, MsgText)

      txtSQL = "select * from student_Info where cardno = '" & txtcardNo.Text & "'"
      Set mrcStu = ExecuteSQL(txtSQL, MsgText)
      If Val(mrcStu.Fields(7)) < Val(mrc.Fields(5)) Then
          MsgBox "余额不足,请充值后再上机", vbOKOnly + vbExclamation, "提示"
          txtcardNo.Text = ""
          txtcardNo.SetFocus
          mrcStu.Close
          Exit Sub
       End If

      '判断卡号是否上机
        txtSQL = "select * from OnLine_Info where cardno='" & txtcardNo.Text & "'"
        Set mrcOn = ExecuteSQL(txtSQL, MsgText)
        If Not mrcOn.EOF Then
                MsgBox "此卡正在上机!", vbOKOnly + vbExclamation, "提示"
                txtStudentNO.Text = Trim(mrcOn.Fields(2))
                txtDept.Text = Trim(mrcOn.Fields(4))
                txtType.Text = Trim(mrcOn.Fields(1))
                txtName.Text = Trim(mrcOn.Fields(2))
                txtSex.Text = Trim(mrcOn.Fields(3))
                Label12.Visible = True
                txtOnDate.Text = Date
                txtOnTime.Text = Time
                'txtBalance.Text = Trim(mrcOn.Fields(7))
                txtOffDate.Text = ""
                txtOffTime.Text = ""
                txtCTime.Text = ""
                txtCTime.Text = ""
                txtCMoney.Text = ""
                mrcOn.Update
                mrcOn.Close
                Exit Sub
        Else

                txtSQL = "select * from student_info where cardno='" & txtcardNo.Text & "'"
                Set mrcStu = ExecuteSQL(txtSQL, MsgText)
                '将数据库总中的数据显示在文本框中
                'txtCardNo.Text = Trim(mrc.Fields(0))
                txtDept.Text = Trim(mrcStu.Fields(4))
                txtType.Text = Trim(mrcStu.Fields(14))
                txtStudentNO.Text = Trim(mrcStu.Fields(1))
                txtName.Text = Trim(mrcStu.Fields(2))
                txtSex.Text = Trim(mrcStu.Fields(3))
                Label12.Visible = True
                txtOnDate.Text = Date
                txtOnTime.Text = Time
                txtBalance.Text = Trim(mrcStu.Fields(7))


                '更新online表
                'Set mrc = New ADODB.Recordset

                txtSQL = "select * from OnLine_info"
                Set mrcOn = ExecuteSQL(txtSQL, MsgText)
                mrcOn.AddNew

                mrcOn.Fields(0) = Trim(txtcardNo.Text)
                mrcOn.Fields(1) = Trim(txtType.Text)
                mrcOn.Fields(2) = Trim(txtStudentNO.Text)
                mrcOn.Fields(3) = Trim(txtName.Text)
                mrcOn.Fields(4) = Trim(txtDept.Text)
                mrcOn.Fields(5) = Trim(txtSex.Text)
                mrcOn.Fields(6) = Trim(txtOnDate.Text)
                mrcOn.Fields(7) = Trim(txtOnTime.Text)
                mrcOn.Fields(8) =    Trim(VBA.Environ("computername"))  '将计算机名同步到数据库的相应表格中
                mrcOn.Fields(9) = Date

                mrcOn.Update
                mrcOn.Close

                '更新line表
                txtSQL = "select * from Line_info"
                Set mrcline = ExecuteSQL(txtSQL, MsgText)
                mrcline.AddNew
                mrcline.Fields(1) = Trim(txtcardNo.Text)

               mrcline.Fields(2) = Trim(txtStudentNO.Text)
               mrcline.Fields(3) = Trim(txtName.Text)
               mrcline.Fields(4) = Trim(txtDept.Text)
               mrcline.Fields(5) = Trim(txtSex.Text)
               mrcline.Fields(6) = Trim(txtOnDate.Text)
               mrcline.Fields(7) = Trim(txtOnTime.Text)
               mrcline.Fields(14) =           Trim(VBA.Environ("computername"))  '将计算机名同步到数据库的相应表格中
                '显示正在上机的人数
                txtSQL = "select count(*) from OnLine_info "
                Set mrcOn = ExecuteSQL(txtSQL, MsgText)

                lblPeople.Caption = Trim(mrcOn.Fields(0))

                mrcOn.Close
'
End If

  PS:此处要注意更新两个表,并且将窗体中“当前上机人数+1”

总结

        通过上机让我注意到软件的逻辑思维,不要只是做到感觉没有问题,而是要进入数据库去确认,若是数据库没有更新,这个时候就要看看自己是不是出现了逻辑错误,此时用断点+逐语句调试会更好一点,可以更好的发现所写代码中那些语句有问题。

猜你喜欢

转载自blog.csdn.net/lyn_xj94512/article/details/79315273
今日推荐