檢查乙個卡號能否使用,需要檢查以下幾點:
只有這幾點同時滿足,此卡才能正常上機。
1、當然不用多說,不輸入卡號當然不能使用。
2、與要求的最小餘額進行比較,小於最小餘額則禁止上機使用
3、此卡沒用註冊,登錄檔中沒有這條記錄
4、次卡正在處於上機狀態,提示正在上機,一卡禁止重複上機使用
下面的這段**僅為借鑑使用,由於當初剛做,所以**不規範。
private sub command1_click()
dim mrc as adodb.recordset ' adodb是動態資料鏈結物件 recordset 是adodb的乙個子類 (資料集,資料表在記憶體的對映)
dim txtsql as string
dim msgtext as string '宣告定義
dim mrc1 as adodb.recordset '鏈結資料庫
dim mrc2 as adodb.recordset
dim mrc3 as adodb.recordset
dim mrc4 as adodb.recordset
'判斷卡號是否為空
if testtxt(cardno.text) = false then
msgbox "請輸入卡號!", vbokonly + vbexclamation, "提示"
cardno.setfocus
exit sub
end if
set mrc1 = new adodb.recordset
txtsql = "select * from student_info where cardno='" & cardno.text & "'"
set mrc1 = executesql(txtsql, msgtext)
'判斷該卡是否存在
if mrc1.eof and mrc1.bof then
msgbox "該卡號未註冊!", vbokonly + vbexclamation, "提示"
cardno.text = ""
cardno.setfocus
exit sub
else
'判斷餘額是否充足
txtsql = "select * from basicdata_info"
set mrc2 = executesql(txtsql, msgtext)
if trim(mrc1.fields(14)) = "固定使用者" then
if mrc1.fields(7) < mrc2.fields(5) then
msgbox "餘額只有" & mrc1.fields(7) & "元,餘額不足,請充值後再上機!", 0 + 1 + 48, "提示"
cardno.text = ""
call frmrecharge.show
mrc1.close
exit sub
end if
else
if mrc1.fields(7) < mrc2.fields(5) then
msgbox "您是臨時使用者,餘額為" & mrc1.fields(7) & "元,餘額不足,請充值後再上機", 0 + 48, "提示"
cardno.text = ""
mrc1.close
exit sub
end if
end if
'' 判斷該卡號是否正在上機
txtsql = "select * from online_info where cardno='" & cardno.text & "'"
set mrc4 = executesql(txtsql, msgtext)
if mrc4.eof = false then
msgbox "該卡正在上機!", vbokonly + 48, "提示"
cardno.text = ""
cardno.setfocus
exit sub
else
studentno.text = trim(mrc1.fields(1)) ' trim 的作用是返回 variant (string),其中包含指定字串的拷貝,沒有前導空白 (ltrim)、尾隨空白 (rtrim) 或前導和尾隨空白 (trim)。
studentname.text = trim(mrc1.fields(2)) 'ltrim 及 rtrim 函式將某字串的開頭及結尾的空格全部去除。只使用 trim 函式也可以做到將兩頭空格全部去除。
cardtype.text = trim(mrc1.fields(14))
***.text = trim(mrc1.fields(3)) '乙個資料庫中的乙個表的第幾個字段
department.text = trim(mrc1.fields(4)) '系別從資料庫中的表中的第幾個字段 來賦值
ondate.text = date
ontime.text = time
leastmoney.text = trim(mrc1.fields(7))
'將上機的資訊新增到online_info表中
set mrc3 = new adodb.recordset
txtsql = "select * from online_info "
set mrc3 = executesql(txtsql, msgtext)
mrc3.addnew
mrc3.fields(0) = trim(cardno.text)
mrc3.fields(1) = trim(cardtype.text)
mrc3.fields(2) = trim(studentno.text)
mrc3.fields(3) = trim(studentname.text)
mrc3.fields(4) = trim(department.text)
mrc3.fields(5) = trim(***.text)
mrc3.fields(6) = trim(ondate.text)
mrc3.fields(7) = trim(ontime.text)
mrc3.fields(8) = trim(winsock1.localhostname)
mrc3.update
label16.caption = mrc3.recordcount
mrc3.update
mrc3.close
end if
end if
end sub
上機用了三個表中的內容 分別是student_info 、basicdata_info、online_info 。所以做上機的時候一定要先搞清楚資料庫中每個之間的聯絡。 機房收費系統 上機
上機在機房系統是至關重要的,只要捋清思路,把大問題分解成乙個個的小問題再去解決,困惑就自然迎刃而解了。來看看我的思路吧!片段 private sub cmdonline click dim txtsql as string dim msgtext as string dim mrc as adodb...
機房收費系統 上機
其實相比起下機,上機的功能相對簡單的多。我總結了一句話大概可以概括了上機的功能 讓賬戶裡錢夠的目前沒有上機的已經註冊過的使用者上機。關鍵點資料表 含義 賬戶裡的錢夠 student info 當使用者餘額高於最少錢數 目前沒有上機 online info online 表中不存在的使用者可上機 已經...
機房收費系統 上機
還在敲學生資訊管理系統的時候,就被師哥師姐告知機房有點兒難,尤其是什麼上下機,動態顯示金額還有強制下機部分。所以開始機房收費系統之後,我就先把上下機這幾部分跳過了,等把別的窗體敲完除錯好之後,發現上下機中,實際上上機還是比較簡單的,就是邏輯性相對於其他窗體來說強一點,但是如果我們把上機的流程畫到圖上...