`
tubaluer
  • 浏览: 1445630 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

机房收费系统之退卡窗体

 
阅读更多

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

步骤:

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics