现在的位置: 首页 > 综合 > 正文

机房收费系统之退卡窗体

2013年10月19日 ⁄ 综合 ⁄ 共 3312字 ⁄ 字号 评论关闭

该窗体的功能:退卡,并修改有关该卡的信息表。

  

步骤:

1,判断该卡是否已注册(通过在学生信息表中查找该卡号的信息),若未注册提示信息并退出。(此时不能退卡)

2,判断该卡是否正在上机(通过在上机记录表中查找该卡号的上机状态),若正在上机则提示信息;若该卡没有上过机则不进行操作。(此时不能退卡)

3,若满足条件则执行退卡,将该卡的退卡记录写入到退卡信息表中,然后显示该卡的退卡信息,并提示退卡成功。

4,退卡成功后要将该卡的学生信息表中的使用状态修改为“未使用”,结账状态修改为“未结账”(充值表中和退卡表中的结账状态不用改,因为学生信息表中该卡号的信息只有一条,若是它退卡时标记为“已结账”,那么等它再次激活后,就没有办法对其进行结账)

5,将该卡的余额设为0(学生信息表中的和最新余额表中的余额都得改)。

窗体代码:

Option Explicit
'确定退卡金额
Private Sub cmdOk_Click()
    Dim strSQL As String
    Dim MsgString As String
    Dim mrs As ADODB.Recordset
    Dim mrss1 As ADODB.Recordset
    Dim mrss2 As ADODB.Recordset
    Dim Balance As Single
    Dim Number As String
    If Trim(txtCardNo.Text) = "" Then
        MsgBox "卡号不能为空!", vbExclamation + vbOKOnly, "警告"
        txtCardNo.SetFocus
        Call Form_Activate
        Exit Sub
    End If
    '判断是否注册,若已注册,则取出办卡老师
    strSQL = "select * from Studentinfo where CardNo='" & Trim(txtCardNo.Text) & "'"

    Set mrss1 = ExecuteSQL(strSQL, MsgString)
    If mrss1.EOF Then
        MsgBox "该卡还没有注册!", vbExclamation + vbOKOnly, "警告"
        txtCardNo.SetFocus
        Call Form_Activate
        Exit Sub
    Else
        If Trim(CStr(mrss1.Fields(9))) = "未使用" Then
            MsgBox "该卡已注销!", vbExclamation + vbOKOnly, "警告"
            txtCardNo.SetFocus
            Call Form_Activate
            Exit Sub
        End If
        Number = Trim(mrss1.Fields(1))
    End If
    '判断该卡的上机状态
    strSQL = "select * from OnKeys where Cardno='" & Trim(txtCardNo.Text) & "'"
    Set mrss2 = ExecuteSQL(strSQL, MsgString)
    If mrss2.EOF Then   '若该卡没有上过机,则什么也不操作
        mrss2.Close
    Else
        mrss2.MoveLast
        If Trim(mrss2.Fields(10)) = "上机状态" Then
            MsgBox "该卡正在上机!", vbExclamation + vbOKOnly, "警告"
            Call Form_Activate
            Exit Sub
        End If
        mrss2.Close
    End If

'    '从最新余额表中获得余额
    strSQL = "select * from LastBalance where Cardno='" & Trim(txtCardNo.Text) & "'"

    Set mrss2 = ExecuteSQL(strSQL, MsgString)
    Balance = Trim(mrss2.Fields(2))
    mrss2.Close
    '向数据库中的退卡表里添加信息
    strSQL = "select * from BackCard where CardNo='" & Trim(txtCardNo.Text) & "'"

    Set mrs = ExecuteSQL(strSQL, MsgString)
    mrs.AddNew
    mrs.Fields(0) = Trim(txtCardNo.Text)
    mrs.Fields(1) = Balance
    mrs.Fields(2) = Date
    mrs.Fields(3) = Time
    mrs.Fields(4) = Trim(strName)
    mrs.Fields(5) = "未结账"
    mrs.Fields(6) = Number
    mrs.Update
    '显示信息
    txtCardNo.Text = Trim(mrs.Fields(0))
    txtBackMoney.Text = Trim(mrs.Fields(1))
    lblCardNo.Caption = "退卡卡号:" & Trim(txtCardNo.Text)
    lblMoney.Caption = "应退款金额:" & Trim(txtBackMoney.Text)
    lblDate = "退卡日期:" & Date
    lblTime.Caption = "退卡时间:" & Time
    lblTeacher.Caption = "办理退卡教师:" & mrs.Fields(4)
    mrs.Close
    lblCardNo.Visible = True
    lblMoney.Visible = True
    lblDate.Visible = True
    lblTime.Visible = True
    lblTeacher.Visible = True
    MsgBox "退卡成功!", vbInformation + vbOKOnly, "退卡"
    '修改该卡的注册信息的使用状态
    strSQL = "select * from Studentinfo where CardNo='" & Trim(txtCardNo.Text) & "'"

    Set mrss1 = ExecuteSQL(strSQL, MsgString)
    mrss1.Fields(8).Value = 0
    mrss1.Fields(9).Value = "未使用"
    mrss1.Fields(14).Value = "未结账"
    mrss1.Update
    mrss1.Close
'    '删除余额
    strSQL = "select * from LastBalance where Cardno='" & Trim(txtCardNo.Text) & "'"

    Set mrss2 = ExecuteSQL(strSQL, MsgString)
    If mrss2.EOF Then Exit Sub
    mrss2.Fields(2).Value = 0
    mrss2.Update
    mrss2.Close

    '清除文本框内容
    txtCardNo.Text = ""
    txtBackMoney.Text = ""
    Unload Me
    Exit Sub
End Sub
'初始化
Private Sub Form_Activate()

    lblCardNo.Visible = False
    lblMoney.Visible = False
    lblDate.Visible = False
    lblTime.Visible = False
    lblTeacher.Visible = False
    '清除文本框内容
    txtCardNo.Text = ""
    txtBackMoney.Text = ""

End Sub

抱歉!评论已关闭.