机房收费系统之优化及问题汇总(来淘宝啦~)(一)

至今机房项目进行了第一次的验收,以下内容是在做的开始遇到的问题解决方法,还有验收后出现的问题优化内容。此篇博客干货满满,让你轻松解决机房的问题这里绝对有你需要的东西,。

1.MDI窗体关不掉

设置属性ControlBox

是或有控制框, 取值为:False

将属性设置为False

 

2.设置textBox控件不可输入

 

3.combo控件只可下拉不可修改

代码如下:

Private Sub Combo**_KeyPress(KeyAscii As Integer)
    KeyAscii = 0
End Sub

 

4.设置textBox自动换行

这里是我们查询显示在文本框的内容,不修改属性,查出来的内容就是一大长句,没有段落会超出我们的TextBox显示的范围,修改这个属性可以更清楚的看到我们所查询的内容。

 

5.清空MSHFLexGrid1

代码如下:


  With myFlexgrid
       .Col = 2
       .Rows = 1
       .Text = ""
  End With

 

6.让窗体居中显示

代码如下:

Me.Left = Screen.Width / 2 - Me.Width / 2
Me.Top = Screen.Height / 2 - Me.Height / 2

 

7.注册充值金额问题

遇到个很奇葩的问题,注册新用户充值,原则是应该是有个最低充值金额,低于最低充值金额时应当提示信息,但是我写的代码功能是实现了,就是注册充值时开头出现“1”也提示相同内容

代码如下:

Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    If txtCash.Text < Trim(mrc1.Fields(5)) Then
                        MsgBox "金额不能低于设置的金额!", 48, "提示"
                        Exit Sub
                     End If

我看了自己好几遍这个代码发现没有什么逻辑上的问题,注册充值充值其他金额是没有问题的,就是充值1、 10、 100这样的金额就不可以了,常理上是不能拒绝顾客想要充值的面额所以这是一个漏洞。

到底哪里出现了问题呢?原因是判定条件的类型不同,这两个一个txtCash(属于字符串类型)fields(5)(数据库中的某列我指定的是liitCash最小充值金额,属于数字类型)

找到原因了,解决办法就是将txtCash转换为数字类型,就是因为类型不同才会出现我遇到的问题,类型不同计算机会先进行判定控件本身条件<fields所以出现了提示!

用类型转换函数Cint或VAL均可即可将数字从String转换到Integer类型。

代码如下:

 Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    If Val(txtCash.Text) < Trim(mrc1.Fields(5)) Then
                        MsgBox "金额不能低于设置的金额!", 48, "提示"
                        Exit Sub
                     End If

还有另外一种同类型条件语句

代码如下:

Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                   If Trim(txtCash.Text) < Trim(txtRecharge.Text) Then
                        MsgBox "金额不能低于设置的金额!", 48, "提示"
                        Exit Sub
                    End If

 

8.基本信息查询没有信息判断是否出现窗体

人性化设置,二次确认是否想进行更改信息,当我们利用组合查询查到了我们想要的内容,选中想要进行修改有一个判定,是否显示修改信息的窗体。

代码如下:

If MsgBox("显示修改学生信息窗体吗?", vbYesNo, "提示") = vbYes Then
            frmEditStuInfo.Visible = True
        Else
            frmEditStuInfo.Visible = False
        End If

 

9.退卡退过的还能再退

我的退卡功能可以一直退,不管是否用过的没用过的都可以退卡,加一条判定语句查询数据库的cancelcard_Info,加判定很好写就是知道用的哪个库!

代码如下:

strSQL = "select status,studentNo,Cash,UserID,Ischeck from student_Info where cardno = '" & txtCardNo.Text & "'"
    Set mrc = ExecuteSQL(strSQL, MsgText)
    
    '判断是否退卡
    If Trim(mrc.Fields(0)) = Trim("不使用") Then
        MsgBox "此卡已退卡!", 48, "提示"
        txtCardNo.SetFocus
        txtCardNo.Text = ""
        Exit Sub
    End If

 

10.组合查询下拉菜单不同选项显示不同控件

这个实现要求就是选择平常菜单选项出现文本框,选择日期为DTPicker控件,方便节约时间,宁可让程序员多干活也不可让客户多干。

下面代码分别写了选择普通选项例如“姓名”和选择要使用的日期“上机日期”的不同情况。

代码显示及效果展示:

Private Sub comboFiledName1_Click()
    comboOperate1.Clear
    Select Case comboFiledName1.Text

    Case "姓名"
    comboOperate1.AddItem "="
    comboOperate1.AddItem "<>"
    txtContent1.Locked = False
    DTPicker1.Visible = False
    
    Case "上机日期"
    comboOperate1.AddItem "="
    comboOperate1.AddItem "<"
    comboOperate1.AddItem ">"
    comboOperate1.AddItem "<>"
    txtContent1.Locked = True
    DTPicker1.Visible = True
    DTPicker1.Format = dtpShortDate
    txtContent1.Text = 0

  End Select
End Sub

 

这只是遇到问题的一小部分,尽情期待加载变更~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值