機房收費之細節優化

2021-07-04 12:36:07 字數 3591 閱讀 8090

登高而望遠,感覺機房收費系統也是如此,剛開始敲機房的時候就覺得會有很多細節去考慮和新增,自己也盡量邊敲邊完善,但畢竟身在此山中,雲深不知處。有很多東西是當時所不曾考慮到的,所以越到後面問題所暴露出來的也就越多,下面是自己對部分細節的優化:

1、臨時使用者下機相當於退卡

txtsql = "select * from student_info where type ='臨時使用者' and cardno ='" & trim(txtcardno.text) & "'"    '如果是臨時使用者下機相當於退卡

set mrc5 = executesql(txtsql, msgtext)

if not (mrc5.bof and mrc5.eof) then

mrc5.fields(10) = trim("不使用")

mrc5.update

上機時,如果此卡已登出,再次上機需要重新啟用

if trim(cstr(mrc.fields(10))) = "不使用" then   '登出的卡號如果再次使用需要重新啟用

a = msgbox("此卡已登出,是否重新啟用?!", vbyesno + vbquestion, "提示")

if a = vbyes then

txtsql = "update student_info set status= '" & trim("使用") & "' where cardno = '" & txtcardno.text & "'"

else

txtcardno.text = ""

txtcardno.setfocus

exit sub

2、一開始以為值班教師表只涉及到乙個查詢,後來才發現它和上機一樣,教師登陸和退出也是一樣要留下痕跡然後更新到表的。

txtsql = "select * from user_info where userid ='" & username & "'" '根據使用者名稱來判斷使用者等級

set mrc1 = executesql(txtsql, msgtext)

if not (mrc1.bof and mrc1.eof) then

strlevel = mrc1.fields(2)

'給正在值班老師表增加一行記錄

txtsql = "select * from onwork_info"

set mrc2 = executesql(txtsql, msgtext)

mrc2.addnew

mrc2.fields(0) = username

mrc2.fields(1) = strlevel

mrc2.fields(2) = format(date, "yyyy-mm-dd")

mrc2.fields(3) = format(time, "hh:mm:ss")

mrc2.fields(4) = trim(vba.environ("computername"))

mrc2.update

'給值班記錄表新增記錄

txtsql = "select * from worklog_info"

set mrcc = executesql(txtsql, msgtext)

mrcc.addnew

mrcc.fields(1) = username

mrcc.fields(2) = strlevel

mrcc.fields(3) = format(date, "yyyy-mm-dd")

mrcc.fields(4) = format(time, "hh:mm:ss")

mrcc.fields(7) = trim(vba.environ("computername"))

mrcc.fields(8) = trim(true)

mrcc.update

3、全部學生下機,開始的時候完全沒思路,後來問的賈文靜同學,用了乙個迴圈。

private sub allstudent_click()

dim i, j as single '定義乙個迴圈

with myflexgrid

if myflexgrid.rows < 2 then '如果**行數小於2的話...

msgbox "暫無學生上機"

else

with myflexgrid

i = myflexgrid.rows - 1 'i=記錄數

for j = i to 1 step -1 '從 j = i 到 1 步長 -1

myflexgrid.rowsel = j '選中j行

call viewdata 'call了乙個選中下機過程

next j

msgbox "恭喜您,全部下機成功!", vbokonly + vbinformation, "恭喜您"

end with

end if

end with

end sub

4、在mshflexgrid中選中、移除某行

myflexgrid.selectionmode = flexselectionbyrow     '單擊的時候選擇的是整行

myflexgrid.focusrect = flexfocusnone '在當前單元的周圍畫乙個焦點框

myflexgrid.highlight = flexhighlightwithfocus '該值決定了所選定的單元是否突出顯示

.removeitem .rowsel '移除所選的那行

5、根據使用者不同的等級來限制使用者的管理許可權

private sub mdiform_load()

dim mrcc as adodb.recordset

dim txtsql as string

dim msgtext as string

dim strlevel as string '定義變數

txtsql = "select * from user_info where userid ='" & username & "'" '根據使用者名稱來判斷使用者等級

set mrcc = executesql(txtsql, msgtext)

strlevel = mrcc!level

select case trim(strlevel)

case "管理員"

case "操作員" '如果是操作員,則管理員那一欄不可用

administrator.enabled = false

case "一般使用者" '如果是一般使用者,則管理員和操作員兩欄不可用

administrator.enabled = false

operator.enabled = false

end select

end sub

6、如果有些地方實在是不好解決的話,在不傷大雅的情況下還是可以用下on error goto進行錯誤跳轉的。

機房收費系統之結尾

機房收費系統在這個冬月告乙個不完美的結局,剛開始接觸他的時候,各種糾結,各種逃避,各種不想做,接觸乙個新的事物,內心充滿了恐懼與排斥,機房收費系統與學生管理系統不一樣,沒有原始碼,這個時候,需要自己不斷的給予自己鼓勵,七 期的師哥師姐都做出來了,你完全有理由相信,自己也能做出來。機房收費系統來來回回...

機房收費系統之思路

機房收費系統的資料放在手裡已經有好一段時間了,卻遲遲沒有開始動工。不知道是對它產生的牴觸心理,還是自己本身就好懶。總是放著不肯前進。但是這幾天看到同學們的進度都好快,有的甚至都已經結束了。不能再偷懶了,話說進度不用太趕,但是自己心裡還是很著急的。畢竟大家的起跑點都是一樣的,怎麼能夠在半路落在別人身後...

機房收費之充值窗體

自學生系統之後的另乙個系統,不過這次沒有原始碼,需要自己去慢慢摸索,不能著急,在此期間也出了好多問題,下面來看看我弄了一下午的充值窗體吧 充值窗體功能 為卡充值金額,並對最新餘額進行更新。步驟 1 輸入卡號後,判斷該卡是否未註冊或者已登出 通過學生資訊表查詢 有個提示。2 輸入充值金額後判斷該金額是...