具體思路如圖
**如下:
'判斷卡號是否為空
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,若滿足條件則執行...
機房收費系統(二)之下機退卡
今天我又回顧了一下 機房管理系統,看見了我熟悉的花費了我三天才敲好的窗體 當然想了兩天 然後今天我就來總結一下下機退卡吧!第一句話是讓子窗體在父窗體中的框裡顯示!其他的然後就是定義函式名稱 然後接下來就是 呼叫函式,並計算上機時間的消費金額 接下來就是將 寫上資料庫中 寫完之後就關閉掉資料庫 整理思...