机房收费系统---优化(一般用户)

1:登录窗体的文本框禁止复制

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then 
    Clipboard.clear  ’清空粘贴板
Endif 
End Sub

2:msflexgrid 控件的显示的问题

   a、去除多余空行

原因:

原因:当我们多次单击查询按钮的时候,.rows属性会一直累加,所以导致我们的总行数一直在增加。

这个时候我们需要做的就是: 在每次单击之前先将.rows的属性设置为1 只剩下标题行。

 b : 选中变色

Private Sub myFlexGrid1_Click()
      myFlexGrid1.SelectionMode = flexSelectionByRow '单击的时候选择的是整行
      myFlexGrid1.FocusRect = flexFocusNone  '在当前单元的周围华一个焦点框
End Sub

c:当msflexgrid的内容为空的时候,禁止使用excel 导出:

 

If MSFlexGrid1.Rows = 1 Then
            MsgBox "当前没有查询到任何记录,所以无法导出到Excel", vbOKOnly + vbExclamation, "警告"
            Exit Sub

在建立表之前添加一条判断语句,当我们的msflexgrid 中的记录只有标题栏,

也就是只有一条记录,那么我们就提示错误,不允许数据导出!

3:上机状态查询窗体:

   a : 当字段名选中为姓名的时候,操作符中只能显示“=”

  b : 当字段名选中日期或者时间的时候要显示日期或时间控件

代码:
Private Sub col1_Click()
      '如果我们选中的是姓名,那么我们的符号框中只能显示等于号
      If col1.Text = "姓名" Then
            fuhao1.Text = "="
            fuhao1.Enabled = False
      Else
            fuhao1.Enabled = True
            
      End If
      '如果我们选中的查询字段是日期,那么我们将显示日期控件,否则隐藏
      If col1.Text = "上机日期" Or col1.Text = "下机日期" Then
            day1.Visible = True
            txt1.Text = day1.Value
            
      Else
            day1.Visible = False
            txt1.Text = ""
            
      End If

但是这样写有一个问题就是当我们在选中时间的时候由于我将日期控件的属性改为时间控件之后,返回的时间值还是日期,所以如果随便输入一些不符合要求的符号,那么久容易出错,所以我在查询控件的代码中加入了一个on error goto 代码:

On Error GoTo Err_line
Err_line:
      
      
      
      Exit Sub

 

 4:所有学生下机:

优化之前存在的问题:

 

   a : 所有学生下线虽然数据库中的数据都下线了,但是主界面的上机人数却没有改变

     没有跟新line表中的数据,也没有更新student表中所剩的金额

全部下机涉及到的表有:

Line_info  online_info  student_info

 

代码:
Private Sub allDown_Click()
      Dim mrc As ADODB.Recordset '链接online 表
      Dim txtsql As String
      Dim msgtxt As String
      Dim mrcc As ADODB.Recordset '链接line表
      Dim txtsqlc As String
      Dim msgtxtc As String
      Dim mrc_stu As ADODB.Recordset '链接学生表
      Dim txtsqls As String
      Dim msgtxts As String
      Dim dat
      dat = Date
      Dim tim
      tim = Time
      Dim usemoney As Long
      Dim usetime As Long
      Dim cardid As String
      Dim cashmoney As Long
      txtsqlc = "select * from line_info where status='true'"
      Set mrcc = ExecuteSQL(txtsqlc, msgtxtc)
            If Not mrcc.EOF Then
                  Do While Not mrcc.EOF
                        cardid = mrcc.Fields(1)
                        mrcc.Fields(8) = dat
                        mrcc.Fields(9) = tim
                        costday = DateDiff("n", mrcc.Fields(6), Date) '花费的时间
                        costtime = DateDiff("n", mrcc.Fields(7), Time) '花费的时间
                        usetime = Val(costday) + Val(costtime)
                        mrcc.Fields(10) = Trim(Str(usetime))
                        mrcc.Fields(13) = "false"
                        mrcc.Fields(14) = "HYF"
                        
                        mrcc.Update
                  txtsqls = "select * from student_info where cardno='" & Trim(cardid) & "'"
                  Set mrc_stu = ExecuteSQL(txtsqls, msgtxts)
                        cashmoney = mrc_stu.Fields(7)
                        If usetime < 2 Then
                              usemoney = 0
                              mrcc.Fields(11) = 0
                              mrcc.Fields(12) = Trim(Str(cashmoney))
                              mrcc.Update
                        Else
                              If usetime < 60 Then
                                    usemoney = 2
                                    mrcc.Fields(11) = 2
                                    mrcc.Fields(12) = Trim(Val(cashmoney) - Val(usemoney))
                                    mrc_stu.Fields(7) = Trim(Val(cashmoney) - Val(usemoney))
                                    mrc_stu.Update
                                    mrcc.Update
                              Else
                                    usemoney = (usetime Mod 60) * 2
                                    mrcc.Fields(11) = Str(usemoney)
                                    mrcc.Fields(12) = Trim(Val(cashmoney) - Val(usemoney))
                                     mrc_stu.Fields(7) = Trim(Val(cashmoney) - Val(usemoney))
                                    mrc_stu.Fields.Update
                                    mrcc.Update
                              End If
                        End If
                  mrcc.MoveNext
                  
                  Loop
            End If
            
                        
      '将所有的学生下机
      txtsql = "select * from online_info"
      Set mrc = ExecuteSQL(txtsql, msgtxt)
            If mrc.EOF Then
                  MsgBox "当年没有用户上机!", vbOKOnly + vbExclamation, "警告"
            Else
                  Do While Not mrc.EOF
                        mrc.Delete
                        mrc.MoveNext
                  Loop
                  myFlexGrid1.Clear
                  
                  MsgBox "所有学生已经成功下机!", vbOKOnly + vbExclamation, "警告"
                  frmMain.allPeople(10).Caption = "0"
                  
            End If
            
End Sub

 

5:再某一时刻只让一个窗体显示:

Private Sub Form_Deactivate()
 
    If Me.WindowState <> 1 Then
       Me.WindowState = 1
    End If
End Sub

6:强烈大家在更新数据表中数据的时候,在添加的内容前面加上trim()函数

trim()函数的作用是去掉括号内部字符串的前后空格,

如果不加这个trim()函数,我们添加到数据库表中的数据就是  空格+字符串,所添加的字符串的前面会多一个空字符,

这样不便于后面的“数据库查找操作”!

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值