至今机房项目进行了第一次的验收,以下内容是在做的开始遇到的问题解决方法,还有验收后出现的问题优化内容。此篇博客干货满满,让你轻松解决机房的问题这里绝对有你需要的东西,。
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
这只是遇到问题的一小部分,尽情期待加载变更~