您的位置:首页 > 数据库

机房收费系统之退卡窗体

2010-08-21 05:43 190 查看
该窗体的功能:退卡,并修改有关该卡的信息表。

  

步骤:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string date 数据库