【機房收費系統】--檢視學生上機狀態
阿新 • • 發佈:2019-02-09
機房收費系統中檢視學生上機狀態窗體並不難,這個窗體可以檢視所有上機的學生,也可以讓他們下機。就在前幾天看了李光師哥的部落格,他說了這樣一個問題,機房有100名上機,我想讓16、29、45、78、92下機,我可以先把他們五個選中然後下機嗎?就是這種效果,在咱們用的一些軟體中,這樣的功能是常見的。
還是站在巨人的肩膀上,我理清了程式碼的思路,我們要將想要下機的學號勾選出來,放到一個數組裡,然後讓這個數組裡的卡號迴圈下機,並算清楚賬,更新相對應的表。
程式碼展示
Dim mrc As ADODB.Recordset
Dim mrcc As ADODB.Recordset
Dim mrccc As ADODB.Recordset
Dim mrcccc As ADODB.Recordset
Dim mrccccc As ADODB.Recordset
Dim txtsql As String
Dim msgtext As String
Dim hanghao(9999) As String
Dim i As Integer
Dim SJ As Integer
Dim j As Integer
Dim XF As Integer
Dim ontime As Variant
If MSFlexGrid1.RowSel = 0 Then
MsgBox "請選擇資料!", 48, "警告"
Exit Sub
End If
txtsql = "select * from basicdata_info "
Set mrccc = ExecuteSQL(txtsql, msgtext)
With MSFlexGrid1
For j = 0 To .Rows - 1
i = 0
If j > .Row Then
Exit Sub
End If
If .TextMatrix(j, 5 ) = "√" Then
hanghao(i) = j
txtsql = "select * from online_info where cardno = '" & Trim(MSFlexGrid1.TextMatrix(Val(j), 0)) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
txtsql = "select * from student_info where cardno = '" & Trim(MSFlexGrid1.TextMatrix(Val(j), 0)) & "'"
Set mrcc = ExecuteSQL(txtsql, msgtext)
SJ = 0: XF = 0: ontime = ""
SJ = Abs(Val(DateDiff("n", Time, Trim(mrc.Fields(7)))))
If SJ < Trim(mrccc.Fields(3)) Then
Else
If Trim(mrcc.Fields(14)) = "臨時使用者" Then
XF = (CInt(Trim(SJ) / 30 + 1)) * (Trim(mrccc.Fields(1)) / 3)
mrcc.Fields(7) = Val(Trim(mrcc.Fields(7))) - XF
mrcc.Update
Else
XF = (CInt(Trim(SJ) / 30) + 1) * (Trim(mrccc.Fields(0)) / 2)
mrcc.Fields(7) = Val(Trim(mrcc.Fields(7))) - XF
mrcc.Update
End If
End If
ontime = mrc.Fields(7)
mrc.Delete
mrc.Update
mrc.Close
frmMain.lblPeople.Caption = Val(frmMain.lblPeople.Caption) - 1
txtsql = "select * from line_info where ontime = '" & ontime & "'"
Set mrcccc = ExecuteSQL(txtsql, msgtext)
txtsql = txtsql & Text1.Text & " " & " cardno = '" & Trim(MSFlexGrid1.TextMatrix(Val(j), 0)) & "'"
Set mrccccc = ExecuteSQL(txtsql, msgtext)
mrcccc.Fields(8) = Date
mrcccc.Fields(9) = Time
mrcccc.Fields(10) = SJ
mrcccc.Fields(11) = XF
mrcccc.Fields(12) = mrcc.Fields(7)
mrcccc.Fields(13) = "正常下機"
mrcccc.Update
MSFlexGrid1.TextMatrix(Val(j), 5) = ""
MSFlexGrid1.RemoveItem hanghao(i)
j = j - 1
End If
Next j
End With
MsgBox "下機成功", 48, "提示"
有了這樣的思路之後,在新增或刪除使用者窗體中也可以用這個方法做一下,效果如下
這個窗體帶程式碼就不展示了,程式碼的註釋不多,有興趣的小夥伴可以跟我私聊!!