第一次机房收费系统之注册

一,前言

一个注册就做了两三天,刚开始做的时候感觉简单,做了一个上午就能实现一些简单的功能,比如说在查找时就能调出查询学生余额的表,还有里面的基本流程。

二、思路

但是当考虑到一些细节,要结合其他的数据表做的时候就有点难了,所以的好好分析,当把他分析透彻了才做起来有方向。
从窗体可以看见,里面有四个按钮,只要把四个按钮所要实现的功能做出来就里完成不远了,但是这里有三个按钮是非常简单的,只有一行代码就可以完成。
三个按钮代码:
这里写图片描述

1.查找:在这里的查找是对学生余额进行查询,那么只有用一行代码把这个窗体调出来即可,在调的前提下“查询学生余额”必须是做完以后的。

> `Private Sub cmdInquiry_Click()   
>  frmStuDemCash.Show
>   End Sub`

2.清空:做的时候站着用户的角度想,不管是在输入信息的过程中有没有这个信息,如果在输之前有的话还需要自己挨个删除,之前的用户也会把自己的信息泄露,这样就造成了信息的不安全,如果能一键删除信息那就给用户和开发人员都带来了很大的便利。所以在做这一步时特别简单,只需将每个text赋值为空值就行。
代码:

Private Sub cmdEmpty_Click()
   txtCardNo.Text = ""
   txtCash.Text = ""
   txtSID.Text = ""
   txtName.Text = ""
   txtSex.Text = ""
   txtDept.Text = ""
   txtGrade.Text = ""
   txtClass.Text = ""
   txtState.Text = ""
   txtBalance.Text = ""
   txtComment.Text = ""
   txtType.Text = ""
End Sub

3.存盘:这一步就比较难了,在做的过程中要考虑很多细节,还有判断很多信息,比如在注册的过程中对卡号有没有被注册给出提示,如果输入的卡号已经被注册,那么它就不能被存盘,还有对输入的信息的限制,针对所输入的信息跟基本数据设定表之间的一些关系做出提示,注册时余额不能大于充值金额,如果能大于那充值的人就亏大了。
我在这里就出现问题了,已经注册过的卡号再次注册时还能注册成功,而且能存到数据库里。
但是在做这一步时还出现了个问题:如图
这里写图片描述

这里写图片描述
原因:在数据表中有一个Use人ID的列,但是在做的时候这一列出现了无法插入数据的情况,导致报错。
解决方法:可是问题是UserID列的数据记录在User_Info表上,那么我们要想用field()=的方法添加语句。就得再调用user表。具体方法是:

  txtsql = "select*from student_Info"           
        Set mrc = ExecuteSQL(txtsql, msgtext)                     ’我们需要再查询User表数据
      
       txtsql = "select*from User_Info"                                    'UserID在student表中是第13列,在UserID表中是第8列
        Set mrc1 = ExecuteSQL(txtsql, msgtext)    

        mrc.AddNew

        mrc.Fields(8) = mrc2.Fields(13)

三、部分代码

判断是否输入卡号和对本框进行一些限制:

txtSQL = “select * from student_Info where cardno = '” & txtCardNo.Text & " ’ " 'and status = ‘使用’"
Set mrc = ExecuteSQL(txtSQL, MsgString)
If txtCardNo.Text = “” Then

    MsgBox "请输入卡号!", 48, "警告"
    
Else

 If Not IsNumeric(txtCardNo.Text) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        txtCardNo.SetFocus
    Else


If mrc.EOF = False Then
       MsgBox "此卡号已经存在,您可查询余额!", vbOKOnly + vbExclamation, "警告"
       txtCardNo.SetFocus
       txtCardNo.Text = ""
       Exit Sub

'若卡号不存在,则输入基本信息
 If Not testtxt(txtCash.Text) Then
        MsgBox "请输入充值金额!", 48, "警告"
        Exit Sub
End If

判断输入的充值金额不能低于余额

txtSQL = "select * from basicdata_info"
       Set mrss = ExecuteSQL(txtSQL, MsgString)

    If Trim(txtCash.Text) < Trim(txtBalance.Text) Then
     MsgBox "充值金额不能低于余额!", vbExclamation + vbOKOnly, "警告"
     txtCash.Text = ""
      txtCash.SetFocus
      Exit Sub
      End If

全部存盘代码:

'存盘

Private Sub cmdSave_Click()
    Dim strSQL As String
    Dim MsgString As String
    Dim Msgtext As String
    Dim mrs As ADODB.Recordset
    Dim mrss As ADODB.Recordset
    Dim mrc As ADODB.Recordset
    Dim Temp(0 To 15) As String
    
   txtSQL = "select * from student_Info where cardno = '" & txtCardNo.Text & " ' " 'and status = '使用'"
   Set mrc = ExecuteSQL(txtSQL, MsgString)
     If txtCardNo.Text = "" Then
     

MsgBox “请输入卡号!”, 48, “警告”

Else

 If Not IsNumeric(txtCardNo.Text) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        txtCardNo.SetFocus
    Else


If mrc.EOF = False Then
       MsgBox "此卡号已经存在,您可查询余额!", vbOKOnly + vbExclamation, "警告"
       txtCardNo.SetFocus
       txtCardNo.Text = ""
       Exit Sub

'若卡号不存在,则输入基本信息
 If Not testtxt(txtCash.Text) Then
        MsgBox "请输入充值金额!", 48, "警告"
        Exit Sub
End If

   txtSQL = "select * from basicdata_info"
   Set mrss = ExecuteSQL(txtSQL, MsgString)


If Trim(txtCash.Text) < Trim(txtBalance.Text) Then
 MsgBox "充值金额不能低于余额!", vbExclamation + vbOKOnly, "警告"
 txtCash.Text = ""
  txtCash.SetFocus
  Exit Sub
  End If
  
If Trim(txtSID.Text) = "" Then
    MsgBox "学号不能为空!", vbExclamation + vbOKOnly, "警告"
    txtSID.Text = ""
    txtSID.SetFocus
    Exit Sub
End If
If Trim(txtName.Text) = "" Then
    MsgBox "姓名不能为空!", vbExclamation + vbOKOnly, "警告"
    txtName.Text = ""
    txtName.SetFocus
    Exit Sub
End If

If Trim(txtSex.Text) = "" Then
    MsgBox "性别不能为空!", vbExclamation + vbOKOnly, "警告"
    txtSex.SetFocus
    Exit Sub
End If
If Trim(txtDept.Text) = "" Then
    MsgBox "系别不能为空!", vbExclamation + vbOKOnly, "警告"
    txtDept.Text = ""
    txtDept.SetFocus
    Exit Sub
End If

If Trim(txtGrade.Text) = "" Then
    MsgBox "年级不能为空!", vbExclamation + vbOKOnly, "警告"
    txtGrade.Text = ""
    txtGrade.SetFocus
    Exit Sub
End If
If Trim(txtClass.Text) = "" Then
    MsgBox "班级不能为空!", vbExclamation + vbOKOnly, "警告"
    txtClass.Text = ""
    txtClass.SetFocus
    Exit Sub
End If
If Trim(txtState.Text) = "" Then
    MsgBox "状态不能为空!", vbExclamation + vbOKOnly, "警告"
    txtState.SetFocus
    Exit Sub
End If
If Trim(txtType.Text) = "" Then txtType.Text = "无"

strSQL = "select * from Student_info"
Set mrs = ExecuteSQL(strSQL, MsgString)

mrs.AddNew
mrs.Fields(0) = Trim(txtCardNo.Text)
mrs.Fields(1) = Trim(txtSID.Text)
mrs.Fields(2) = Trim(txtName.Text)
mrs.Fields(3) = Trim(txtSex.Text)
mrs.Fields(4) = Trim(txtDept.Text)
mrs.Fields(5) = Trim(txtGrade.Text)
mrs.Fields(6) = Trim(txtClass.Text)
mrs.Fields(7) = Trim(txtCash.Text)
mrs.Fields(8) = Trim(txtComment.Text)
mrs.Fields(9) = UserName
mrs.Fields(10) = Trim(txtState.Text)
mrs.Fields(14) = Trim(txtType.Text)
mrs.Fields(12) = Date
mrs.Fields(13) = Time
mrs.Fields(11) = "未结账"

mrs.Update

strSQL = "select * from BasicData_Info"
Set mrss = ExecuteSQL(strSQL, MsgString)
mrss.AddNew
mrss.Fields(0) = Trim(mrs.Fields(0))
mrss.Fields(1) = Trim(mrs.Fields(1))
mrss.Fields(8) = Trim(mrs.Fields(2))
 '我们需要再查询User表数据
    txtSQL = "select*from User_Info"                                    'UserID在student表中是第13列,在UserID表中是第11列
    Set mrc = ExecuteSQL(strSQL, MsgString)

    mrc.AddNew

    mrc.Fields(8) = mrs.Fields(13)
    
mrs.Update
mrs.Close
MsgBox "注册成功!", vbInformation + vbOKOnly, "注册成功"
Call cmdEmpty_Click
End If

End If
End Sub

PS:只有细心做了,理清思路就没有想象的那么难了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值