機房收費系統----使用者登陸軟體關閉軟體資訊在worklog表中的新增
阿新 • • 發佈:2018-12-09
當機房快要接近尾聲的時候,我發現有一個很重要的程式沒有做,那就是使用軟體的使用者登陸和關閉軟體的資訊獲取,也就是在worklog_info表中加資訊。
編寫過程
1.我們這個時候需要用到標籤(標籤的使用和作用我之前的部落格有提到,不明白的可以看我之前的部落格),之前咱們學生管理系統裡學到的東西現在就要使用了,鍛鍊我們舉一反三的能力,先在模組裡宣告全域性變數myBookmark,由於myBook不只是在同一個窗體裡用,所以用的是全域性變數。
'進行宣告
Public myBookmark As Variant
2.在登陸視窗介面記錄相應的資訊,由於現在只是登陸,當我們點選確定登陸按鈕時,我們只知道登陸者ID,登陸者時間,登陸日期,以及登陸電腦。所以其他不知道的資訊設定先在資料庫中設定為空即可,我們之後再新增上。該程式碼在frmLogin登陸視窗中編寫
Private Sub cmdSure_Click() Dim a As String Dim txtSQL As String Dim mrc As ADODB.Recordset Dim Msgtext As String '判斷輸入使用者名稱是否為空 If Trim(txtUserName.Text = "") Then MsgBox "請輸入使用者名稱", vbOKOnly + vbExclamation, "警告" txtUserName.SetFocus Else txtSQL = "select * from user_info where userid='" & txtUserName.Text & "'" Set mrc = ExecuteSQL(txtSQL, Msgtext) If mrc.EOF = True Then MsgBox "沒有這個使用者,請重新輸入使用者名稱!", vbOKOnly + vbExclamation, "警告" txtUserName.SetFocus Else If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then OK = True a = mrc.Fields(2) mrc.Close '獲取目前已知的登陸者資訊 txtSQL = "select * from worklog_info" Set mrc = ExecuteSQL(txtSQL, Msgtext) mrc.AddNew mrc.Fields(1) = txtUserName.Text mrc.Fields(2) = a mrc.Fields(3) = Date mrc.Fields(4) = Time mrc.Fields(7) = GetThisComputerName mrc.Fields(8) = "True" mrc.Update '用標籤進行標記 myBookmark = mrc.Bookmark mrc.Close '窗體隱藏,顯示主窗體 Me.Hide frmMain.Show ' Username = Trim(txtUserName.Text) Else MsgBox "密碼輸入不正確,請重新輸入!", vbOKOnly + vbExclamation, "警告" miCount = miCount + 1 If miCount = 1 Then MsgBox "還有兩次機會", vbOKOnly + vbExclamation, "提示" End If If miCount = 2 Then MsgBox "還有一次機會", vbOKOnly + vbExclamation, "提示" End If If miCount = 3 Then End End If txtPassword.SetFocus txtPassword.Text = "" End If End If End If End Sub
3.如果我們關閉機房收費系統軟體時,它是直接關閉的,沒有任何停留,不能獲取到它的關閉時間,所以我們就需要用Queryunload事件(Queryunload事件的具體使用方法見我的上一篇部落格),在該事件中,我們編寫程式碼,就可以在資料庫中選取到之前沒有新增完的那一條資訊,繼續新增完。此事件在frmMain主視窗中編寫。
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim mrc As ADODB.Recordset Dim txtSQL As String Dim Msgtext As String a = MsgBox("您真的要退出嗎", vbOKCancel, "提示") If a = vbOK Then txtSQL = "select * from worklog_info" Set mrc = ExecuteSQL(txtSQL, Msgtext) '回到標籤記錄的位置 mrc.Bookmark = myBookmark mrc.Fields(5) = Date mrc.Fields(6) = Time mrc.Fields(8) = "False" '完成更新 mrc.Update mrc.Close Cancel = 0 Else Cancel = 1 End If End Sub
現在我們就完成了,是不是感覺並沒有那麼難。其實我之前自己還想了一個別的辦法,感覺不太好,後來想到了學生管理裡的標籤,標籤的作用真的巨大。我們之前學的東西都是有用的,多動腦,多思考,一切都會容易的。加油!