当机房快要接近尾声的时候,我发现有一个很重要的程序没有做,那就是使用软件的用户登陆和关闭软件的信息获取,也就是在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
现在我们就完成了,是不是感觉并没有那么难。其实我之前自己还想了一个别的办法,感觉不太好,后来想到了学生管理里的标签,标签的作用真的巨大。我们之前学的东西都是有用的,多动脑,多思考,一切都会容易的。加油!