上下機是機房收費系統中比較重要的一部分,所以我們一定要把上下機的思路理清楚才可以,不然會很亂,一會兒就把自己繞進去了,現在我們一起分析一下下機的思路吧!
**片段:
判斷上下機的情況
private sub cmdoffline_click()
dim mrconline as adodb.recordset
dim mrconline2 as adodb.recordset
dim mrcstudent as adodb.recordset
dim mrcbasic as adodb.recordset
dim mrcline as adodb.recordset
dim mrcline2 as adodb.recordset
dim mrc as adodb.recordset
dim time1 as long
dim time2 as long
dim time3 as long
dim msgtext as string
dim txtsql1 as string
dim txtsql2 as string
dim txtsql3 as string
'消費時間
dim consumetime as string
'連線表
txtsql2 = "select * from basicdata_info" '從資料表中獲取基本資料
set mrcbasic = executesql(txtsql2, msgtext)
txtsql3 = "select * from student_info where cardno='" & trim(txtcardno.text) & "'and status='" & "使用" & "'" '得出餘額
set mrcstudent = executesql(txtsql3, msgtext)
if txtcardno.text = "" then
msgbox "請輸入卡號!", 0 + 48, "警告"
else
'判斷此卡是否已經下機
txtsql1 = "select * from online_info where cardno= '" & trim(txtcardno.text) & "'"
set mrconline = executesql(txtsql1, msgtext)
if mrconline.eof = true then
msgbox "沒有上機"
else
'從online_info資料表中獲取資料到下機介面
txtsid.text = mrconline.fields(2)
txtdept.text = mrconline.fields(4)
txttype.text = mrconline.fields(1)
txtname.text = mrconline.fields(3)
txt***.text = mrconline.fields(5)
txtondate.text = mrconline.fields(6)
txtoffdate.text = date
txtontime.text = mrconline.fields(7)
txtofftime.text = time
計算消費時間和消費金額
'計算上機時間
consumetime = abs(val(datediff("n", trim(mrconline!date), now))) '把日期差轉換成分鐘
'判斷是否小於準備時間
txtctime.text = consumetime
mrconline.update
if consumetime < mrcbasic.fields(4) then
txtcmoney.text = "0"
txtctime.text = "0"
txtbalance.text = trim(mrcstudent.fields(7))
else
'判斷是否小於最小上機時間
'判斷消費時間小於最小上機時間時消費金額為1
if consumetime > mrcbasic!leasttime then
txtcmoney.text = "1" '消費金額為1元
txtbalance.text = val(mrcstudent.fields(7)) - val(txtcmoney.text)
else
if mrconline.fields(1) = "固定使用者" then
txtcmoney.text = round((mrcbasic.fields(0) / 60 * consumetime)) 'cdbl將時間轉換成double型別,round是將資料四捨五入,保留兩位小數
txtbalance.text = val(mrcstudent.fields(7)) - val(txtcmoney.text)
else
txtcmoney.text = round((mrcbasic.fields(1) / 60 * consumetime)) '計算臨時使用者金額
txtbalance.text = val(mrcstudent.fields(7)) - val(txtcmoney.text)
mrcstudent.fields(7) = trim(txtbalance.text)
mrcstudent.fields(11) = "未結賬"
mrcstudent.update
txtctime.text = consumetime
end if
end if
end if
end if
end if
更新記錄txtsql = 「select * from line_info where ontime=』」 & trim(txtontime.text) & 「『and cardno=』」 & trim(txtcardno.text) & 「』」
set mrcline2 = executesql(txtsql, msgtext)
if mrcline2.eof = true then
msgbox "該使用者沒有上機記錄,請退出!", 0 + 46, "提示"
else
mrcline2.fields(8) = date
mrcline2.fields(9) = time
mrcline2.fields(10) = trim(txtctime.text)
mrcline2.fields(11) = val(txtcmoney.text)
mrcline2.fields(12) = val(txtbalance.text)
mrcline2.fields(13) = "正常下機"
mrcline2.update
mrcline2.movenext
msgbox "下機成功", 0 + 48, "提示"
mrconline.delete
mrconline.update
end if
以上內容就是上下機的具體**!上下機是機房的核心部分,也是最關鍵的部分,所以一定要一次性的把它做好,不然後期優化還會再找麻煩的,下機一般不同的人有不同的寫法, 以下是我遇到的兩個思路: 機房收費系統 下機
有了上機的思路,下機當然也就很簡單了,不過總是要比別人多想一步,這樣你就能夠比別人更加的優秀。下機的流程圖 下機的注意事項 txtontime.text trim mrc3.fields 7 txtdowndate.text format now yyyy mm dd txtdowntime.tex...
機房收費系統 下機
計算消費時間 計算上機時間 intlinetime date datevalue onw ondate 1440 hour time hour timevalue onw ontime 60 minute time minute timevalue onw ontime 計算機上機時間 txtcti...
機房收費系統 上下機
最近大家都在進行機房收費系統,看大家的部落格,基本上都是先理清思路再實現功能,回想自己當時做的時候就不夠好,只是盲目的敲 卻忽略了方向比努力更重要這個道理,導致最後出現了很多漏洞,於是又重新畫了一遍上下機的流程圖,希望能對以後機房的學習有幫助。上機 只要思路清晰,具體的 實現很簡單。下機 下機需要計...