機房收費系統之優化及問題彙總(來淘寶啦~)(一)
至今機房專案進行了第一次的驗收,以下內容是在做的開始遇到的問題解決方法,還有驗收後出現的問題優化內容。此篇部落格乾貨滿滿,讓你輕鬆解決機房的問題這裡絕對有你需要的東西,。
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
這只是遇到問題的一小部分,盡情期待載入變更~