機房收費系統之學生狀態檢視——全部下線
阿新 • • 發佈:2018-12-20
對於這一部分,我感覺是機房挺不容易的一個部分,因為一開始思路沒有找對,總是想通過控制元件的顏色來判斷是否選中(因為選中之後可以控制顏色),哈哈哈,現在感覺鑽牛角尖了,後來實在不行了,快崩潰了,於是看了師哥的部落格,奧,,恍然大悟。
全部下機:
1、前提是先得顯示所有的線上使用者,然後點選全部下機,否則全部下機按鈕不可用。
2、計算餘額
3、同步line表
4、刪除資料庫中的線上人數
5、刪除msf表中的資料
部分程式碼展示(以下只是每一部分的程式碼,並沒有聯絡起來,有很多是穿插著使用的,我把它用分開的形式寫了出來。):
1、前提是先得顯示所有的線上使用者,然後點選全部下機,否則全部下機按鈕不可用。(原諒我這裡偷懶了,沒有用英文名字
在學生裡面有一個功能,就是沒有點選那個按鈕之前,這個按鈕是不能用的。所以在這裡我們設立一個mcclean。當沒有點選“顯示全部”這個按鈕的時候,“上機管理”這個按鈕是不能用的。程式碼如下(為了方便大家看,刪除了無關的程式碼):
Dim mcclean As Boolean
Private Sub Form_Load()
mcclean = False’看這裡
End Sub
Private Sub 顯示全部_Click()
mcclean = True’點選顯示全部之後就變得可用了
Private Sub 上機管理_Click() If mcclean = False Then’如果沒有點選"顯示全部"按鈕 MsgBox "請先點選顯示全部", , "提示" 所有學生下線.Enabled = False 選中學生下線.Enabled = False Exit Sub Else 所有學生下線.Enabled = True 選中學生下線.Enabled = True End If End Sub
2、計算餘額
txtsql = "select * from online_info" Set mrc = ExecuteSQL(txtsql, msgtext) If mrc.EOF Then MsgBox "沒有學生正在上線", 48, "提示" Exit Sub Else txtsql = "select * from student_info" Set mrc = ExecuteSQL(txtsql, msgtext) txtsql = "select* from basicdata_info" Set mrcc = ExecuteSQL(txtsql, msgtext) onlinetime = DateDiff("n", mrcc.Fields(8), Time) If onlinetime <= 2 Then '小於2分鐘不收費 mrc.Fields(7) = mrc.Fields(7) - 0 Else If mrc.Fields(14) = "固定使用者" Then mrc.Fields(7) = mrc.Fields(7) - onlinetime / 60 * 2 Else consume = onlinetime / 60 * 3 mrc.Fields(7) = mrc.Fields(7) - consume mrc.Update mrc.Close End if End if
3、同步line表
With MSFlexGrid1
For i = 1 To MSFlexGrid1.Rows - 1
txtsql = "select * from online_info where cardno='" & Trim(.TextMatrix(i, 0)) & "'"
Set mrc1 = ExecuteSQL(txtsql, msgtext)
Next
End With
········
mrc5.AddNew
mrc5.Fields(1) = Trim(mrc1.Fields(0))
mrc5.Fields(2) = Trim(mrc1.Fields(2))
mrc5.Fields(3) = Trim(mrc1.Fields(3))
mrc5.Fields(4) = Trim(mrc1.Fields(1))
mrc5.Fields(5) = Trim(mrc1.Fields(5))
mrc5.Fields(6) = Trim(mrc1.Fields(6))
mrc5.Fields(7) = Trim(mrc1.Fields(7))
mrc5.Fields(8) = Date
mrc5.Fields(9) = Time
mrc5.Fields(10) = onlinetime
mrc5.Fields(11) = consume
mrc5.Fields(12) = Trim(mrc.Fields(7))
mrc5.Fields(13) = "正常下機"
mrc5.Fields(14) = Trim(StrCPN)
mrc5.Update
4、刪除資料庫中的線上人數
txtsql = "delete from online_info"
Set mrc1 = ExecuteSQL(txtsql, msgtext)
5、刪除msf表中的資料
這裡不叫刪除,其實就是恢復表頭狀態就可以了,當時也沒有想到這一點。
With MSFlexGrid1
.Rows = 2
.CellAlignment = 4
.TextMatrix(1, 0) = "卡號"
.TextMatrix(1, 1) = "姓名"
.TextMatrix(1, 2) = "上機日期"
.TextMatrix(1, 3) = "上機時間"
.TextMatrix(1, 4) = "機房號"
End With
感謝觀看。