总结篇(2)-----第一遍机房收费系统(上机)

  到现在为止已经结束了机房收费系统基本功能的实现。看了那么多师哥师姐的博客,网上百度了那么多的知识,现在总得自己来回顾一下。下面来谈一下机房收费系统的几个关键点。

  机房收费系统的主要功能分成四个部分,分别是:上、下机结账报表组合查询四个模块。也就是这四块,能让我们对vb有更深刻的理解。

  首先我们来整理一下关于上机、下机的逻辑关系。上机就是实现数据库中数据显示到文本框中,以及在另外一个数据表中通过代码增加数据实现数据库的“增”的功能。具体的代码如下

<pre name="code" class="vb">Private Sub cmdON_Click()  
'    Text1.Text = Environ("USENAME")  
    Dim txtSQL As String  
    Dim MsgText As String  
    Dim mrc As ADODB.Recordset      '连接student表  
    Dim mrcc As ADODB.Recordset     '连接OnLine表  
    Dim mrcc1 As ADODB.Recordset    '连接Line表  
    '从Online表中选取输入输入的卡号有没有上机    判断输入卡是否已上机  
    txtSQL = "select * from OnLine_Info where cardno='" & Trim(txtCardno.Text) & "'"  
    Set mrcc = ExecuteSQL(txtSQL, MsgText)  
    If Not mrcc.EOF Then  
        MsgBox "此卡正在上机!", vbOKOnly + vbExclamation, "提示"  
        Exit Sub  
    End If  
     
    If Trim(txtCardno.Text) = "" Then  
        MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "提示"  
        txtCardno.SetFocus  
        Exit Sub  
    End If  
    '查看卡是否使用或者余额是否充足  
    txtSQL = "select * from student_Info where cardno='" & Trim(txtCardno.Text) & "'" & "and status='使用'"  
    Set mrc = ExecuteSQL(txtSQL, MsgText)  
    If mrc.EOF = True Then  
        MsgBox "此卡没有注册或已不再使用", vbOKOnly + vbExclamation, "提示"  
        Exit Sub  
    End If  
      
    If mrc.Fields(7) <= 0 Then  
        MsgBox "亲,您的余额不足,请充值后重新登录", vbOKOnly + vbExclamation, "提示"  
    Else  
        txtCardno.Text = Trim(mrc.Fields(0))  
        txtStudentID.Text = Trim(mrc.Fields(1))  
        txtDepart.Text = Trim(mrc.Fields(5))  
        txtName.Text = Trim(mrc.Fields(2))  
        txtType.Text = Trim(mrc.Fields(14))  
        txtSex.Text = Trim(mrc.Fields(3))  
        txtOnDate.Text = Format(Date, "yyyy-mm-dd")  
        txtOnTime.Text = Format(Time, "hh:mm:ss")  
        txtBalance.Text = Trim(mrc.Fields(7))  
    End If  
      
       '从Online表中选取如果正在上机提示 没有的话就上机成功并且把数据更新到online表中  
    txtSQL = "select * from OnLine_Info where cardno='" & Trim(txtCardno.Text) & "'"  
    Set mrcc = ExecuteSQL(txtSQL, MsgText)  
        If mrcc.EOF = False Then  
            MsgBox "该卡正在上机", vbOKOnly + vbExclamation, "提示"  
            txtCardno.Text = ""  
            txtStudentID.Text = ""  
            txtDepart.Text = ""  
            txtType.Text = ""  
            txtSex.Text = ""  
            txtOnDate.Text = ""  
            txtOnTime.Text = ""  
            txtName.Text = ""  
            txtBalance.Text = ""  
         Else  
            MsgBox "上机成功!", vbOKOnly + vbExclamation, "警告"  
            mrcc.AddNew  
            mrcc.Fields(0) = Trim(txtCardno.Text)  
            mrcc.Fields(1) = Trim(txtType.Text)  
            mrcc.Fields(2) = Trim(txtStudentID.Text)  
            mrcc.Fields(3) = Trim(txtName.Text)  
            mrcc.Fields(4) = Trim(txtDepart.Text)  
            mrcc.Fields(5) = Trim(txtSex.Text)  
            mrcc.Fields(6) = Date  
            mrcc.Fields(7) = Time  
            mrcc.Fields(8) = VBA.Environ("computername")  
            mrcc.Fields(9) = Now  
            mrcc.Update  
            onliner = onliner + 1  
            Label16.Caption = onliner  
        End If  
        '把数据传给line表中 上机中此时下机时间下机日期还有消费时间都是空的,消费金额为0 添加到数据库中  
    txtSQL = "select * from Line_Info"  
    Set mrcc1 = ExecuteSQL(txtSQL, MsgText)  
  
        mrcc1.AddNew  
        mrcc1.Fields(1) = Trim(txtCardno.Text)  
        mrcc1.Fields(2) = Trim(txtStudentID.Text)  
        mrcc1.Fields(3) = Trim(txtName.Text)  
        mrcc1.Fields(4) = Trim(txtDepart.Text)  
        mrcc1.Fields(5) = Trim(txtSex.Text)  
        mrcc1.Fields(6) = Trim(txtOnDate.Text)  
        mrcc1.Fields(7) = Trim(txtOnTime.Text)  
        mrcc1.Fields(8) = Null  
        mrcc1.Fields(9) = Null  
        mrcc1.Fields(10) = Null  
        mrcc1.Fields(11) = "0.0"  
        mrcc1.Fields(12) = Trim(mrc.Fields(7))  
        mrcc1.Fields(13) = "正常上机"  
        mrcc1.Fields(14) = VBA.Environ("computername")  
        mrcc1.Update  
        mrcc.Close  
        mrcc1.Close  
End Sub


 
 

  期中一些待优化的部分还是需要继续接着优化的,比如时间的获取要考虑实际情况。我们考虑的都是从本机上获取的时间,这样一旦本机发生断电或者时间校正不正确的情况可能就会导致整个系统的故障,对金额的相关计算可能也就会发生变化,这是在用户使用过程中不允许出现的。所以,为了保险起见还是要获取一下服务器的时间。这是关于上机的一些基本功能的实现。后期优化还是要发挥个人的潜力,把自己的思想融入到里面去。

你可能感兴趣的:(总结篇(2)-----第一遍机房收费系统(上机))