上機
'判斷是否為空
'判斷卡號是否註冊,是否退卡
'查basicdata_info,判斷餘額是否小於最小金額
txtsql = "select*from basicdata_info"
set mrcbasicdata = executesql(txtsql, msgtext)
mrcbasicdata.movefirst
if val(mrc.fields(7)) < val(mrcbasicdata.fields(5)) then
msgbox "餘額不足,請充值後上機", vbokonly + vbexclamation, "提示"
txtcardno.text = ""
txtcardno.setfocus
else
'查online_info,看該卡是否在上機
txtsql = "select*from online_info where cardno='" & trim(txtcardno.text) & "'"
set mrc = executesql(txtsql, msgtext)
if mrc.eof = false then
msgbox "該卡正在上機,不能重複上機!"
txtcardno.text = mrc.fields(0)
...txtontime.text = mrc.fields(7)
txtsql = "select*from student_info where cardno='" & trim(txtcardno.text) & "'"
set mrccash = executesql(txtsql, msgtext)
txtbalance.text = mrccash!cash
else
'正常上機,顯示卡號資訊
'更新line_info資料
'更新online_info資料
下機dim curconsume as single '用於儲存真正花費錢的時間
dim remaincash as single '用於儲存使用者的餘額
dim fixedunit as single '用於固定使用者儲存單位金額
dim temunit as single '用於臨時使用者儲存單位金額
dim a as integer
'判斷卡號是否為空,判斷是否為數字
'判斷卡號是否註冊,是否退卡
'判斷該卡號是否在上機,沒有上機不能下機
'計算所消費的時間
intlinetime = (date - datevalue(mrc!ondate)) * 1440 + (hour(time) - hour(timevalue(mrc!ontime))) * 60 + (minute(time) - minute(timevalue(mrc!ontime))) '時間單位為分鐘
txtsql = "select * from student_info where cardno='" & trim(txtcardno.text) & "'"
set mrc = executesql(txtsql, msgtext)
'獲得基本表的資料
txtsql = "select * from basicdata_info"
set mrcbasicdata = executesql(txtsql, msgtext)
mrcbasicdata.movefirst
'單位時間的費用 (把固定使用者,臨時使用者單位時間的費用分別賦值給費用)
fixedunit = val(mrcbasicdata.fields(0)) '把固定使用者的金額賦值給變數
temunit = val(mrcbasicdata.fields(1)) '把臨時使用者的金額賦值給變數
if intlinetime <= val(trim(mrcbasicdata.fields(4))) then
txtexpensecash.text = "0"
else
if intlinetime < val(trim(mrcbasicdata.fields(3))) then
txtexpensecash.text = "0"
end if
end if
if intlinetime >= val(trim(mrcbasicdata!leasttime)) and intlinetime and trim(mrc.fields(14)) = "固定使用者" then
a = int(intlinetime / val(trim(mrcbasicdata!unittime)))
if a = intlinetime / trim(mrcbasicdata!unittime) then
curconsume = a
else
curconsume = a + 1
end if
txtexpensecash.text = val(curconsume) * val(fixedunit)
else
if intlinetime >= val(trim(mrcbasicdata!leasttime)) and intlinetime and trim(mrc.fields(14)) = "臨時使用者" then
a = int(intlinetime / val(trim(mrcbasicdata!unittime)))
if a = intlinetime / trim(mrcbasicdata!unittime) then
curconsume = a
else
curconsume = a + 1
end if
txtexpensecash.text = val(curconsume) * val(temunit)
end if
end if
'更新學生表
'更新上機記錄表
end sub
再看一遍,發現還是挺簡單的,以後要繼續加油!
機房收費系統 上下機
最近大家都在進行機房收費系統,看大家的部落格,基本上都是先理清思路再實現功能,回想自己當時做的時候就不夠好,只是盲目的敲 卻忽略了方向比努力更重要這個道理,導致最後出現了很多漏洞,於是又重新畫了一遍上下機的流程圖,希望能對以後機房的學習有幫助。上機 只要思路清晰,具體的 實現很簡單。下機 下機需要計...
機房收費系統 上下機
在 上機下機中 主要是要想到所有在上機中可能發生的事件 並作出相應的對策 確保使用者可以成功的上機 下 機。上機 卡號是否位數字,需要判斷卡號是否存在,卡內餘額是否充足,卡號是否正在被使用。首先 查詢資料庫 中的student表 判斷卡號是否存在,且 處於可使用狀態 如果均符合以上要求 那麼就要檢視...
機房收費系統 上下機
前言 這兩個窗體 邏輯基本類似,開始正文 邏輯圖 重要 展示 從下機來說下機時間的確定是乙個承上啟下的作用 basicsql select from basicdata info 連線基本資料表 set basicmrc executesql basicsql,basictext if online...