機房收費系統 退卡

2021-07-03 22:25:59 字數 2652 閱讀 2394

具體思路如圖

**如下:

'判斷卡號是否為空

if not testtxt(txtcardno.text) then

msgbox "請輸入卡號!", vbokonly + vbexclamation, "提示"

txtcardno.setfocus

exit sub

end if

'新建查詢

strsql = "select status,studentno,cash,userid,ischeck from student_info where cardno = '" & txtcardno.text & "'"

set mrc = executesql(strsql, msgtext)

studentno = trim(mrc.fields(1))

cash = mrc.fields(2)

userid = mrc.fields(3)

ischeck = mrc.fields(4)

'判斷是否註冊

if mrc.eof then

msgbox "沒有該卡號!", vbokonly + vbexclamation, "提示"

txtcardno.setfocus

txtcardno.text = ""

exit sub

'判斷是否退卡

elseif trim(mrc.fields(0)) = trim("不使用") then

msgbox "此卡已退卡!", 48, "提示"

txtcardno.setfocus

txtcardno.text = ""

exit sub

else

'判斷是否正在上機

strsql = "select * from online_info where cardno= '" & txtcardno.text & "'"

set mrco = executesql(strsql, msgtext)

if not mrco.eof then

msgbox "此卡正在上機,請先下機再退卡!", 48, "提示"

txtcardno.setfocus

txtcardno.text = ""

exit sub

end if

'更新student_info表

strsql = "update student_info set status = '" & "不使用" & "'" & "where cardno = '" & txtcardno.text & "'"

set mrc2 = executesql(strsql, msgtext)

strsql = "update student_info set cash= '" & val(0) & "'" & "where cardno = '" & txtcardno.text & "'"

set mrcs = executesql(strsql, msgtext)

'把資料插入到cancelcard_info表

strsql = "select * from cancelcard_info"

set mrcc = executesql(strsql, msgtext)

mrcc.addnew

mrcc.fields(0) = studentno

mrcc.fields(1) = txtcardno.text

mrcc.fields(2) = cash

mrcc.fields(3) = date

mrcc.fields(4) = time

mrcc.fields(5) = userid

mrcc.fields(6) = ischeck

mrcc.update

mrcc.close

txtreturnamount.text = cash

txtmessage.text = "退款卡號:" & txtcardno.text & vbcrlf & vbcrlf & _

"應退款金額:" & cash & vbcrlf & vbcrlf & _

"退款日期:" & canceldate & vbcrlf & vbcrlf & _

"辦理退卡老師:" & userid

msgbox "退卡成功!", vbokonly + vbexclamation, "提示"

end if

最後在往cancelcard_info表中插入資料是,也可以使用 insert 語句

strsql = "insert into cancelcard_info values('" & studentno & "','" & txtcardno.text & "','" & cash & "','" & date & _

"','" & time & "','" & userid & "','" & ischeck & "')"

call executesql(strsql, msgtext)

兩種方法實現的功能是一樣的,但是我們因為敲學生的問題,一開始都比較習慣用select語句,但是insert語句用起來也挺簡單的。

機房收費系統 退卡

做每個窗體之前最重要的是屢清思路,縷清思路的最好的方法就是畫流程圖,畫流程圖前要考慮做的窗體需要哪幾個表。退卡中,要判斷卡號是否存在肯定就用到了student表,退卡,肯定就用到了本身的退卡表,卡號需要判斷是否上機,這時就用到了on line正在上機表,如果在上機,就要先下機在退卡。流程圖 如下 p...

機房收費系統之退卡窗體

該窗體的功能 退卡,並修改有關該卡的資訊表。步驟 1,判斷該卡是否已註冊 通過在學生資訊表中查詢該卡號的資訊 若未註冊提示資訊並退出。此時不能退卡 2,判斷該卡是否正在上機 通過在上機記錄表中查詢該卡號的上機狀態 若正在上機則提示資訊 若該卡沒有上過機則不進行操作。此時不能退卡 3,若滿足條件則執行...

機房收費系統(二)之下機退卡

今天我又回顧了一下 機房管理系統,看見了我熟悉的花費了我三天才敲好的窗體 當然想了兩天 然後今天我就來總結一下下機退卡吧!第一句話是讓子窗體在父窗體中的框裡顯示!其他的然後就是定義函式名稱 然後接下來就是 呼叫函式,並計算上機時間的消費金額 接下來就是將 寫上資料庫中 寫完之後就關閉掉資料庫 整理思...