MS Access记录用户跨网络的进入和退出时间

时间:2013-06-30 15:35:33

标签: variables ms-access scope

嘿伙计我需要一些帮助。我的任务是商业智能项目,其中最初的步骤是记录用户的进入和退出日期和时间。所以我有三个模块: modCaptureIns和modCaptureOuts;此外,我有一个在AutoExec宏上运行的modCaptureIns函数RecordIns()和一个名为frmCaptureOuts的隐藏表单关闭时运行的modCaptureOuts(在用户关闭数据库时)。

问题在于:当单个用户打开和关闭数据库时,tblInsNOuts中会记录退出时间。只要您有多个用户,第二个用户就会将SessId变量更改为其他数字,然后不会记录退出时间。请帮帮忙。任何帮助都感激不尽。

CF

`Option Compare Database
Option Explicit

Public SessID As Integer

Public Function RecordIns()
On Error GoTo ErrorHandler

Dim db As Database
Dim rs As Recordset

DoCmd.SetWarnings False

SessID = DFirst("[MaxOfSessionID]", "[qryMaxOfSessionID]") + 1

Set db = CurrentDb
Set rs = db.OpenRecordset("tblInsNOuts")

rs.AddNew
rs.Fields("SessionID") = SessID
rs.Fields("WinID") = GetUser()
rs.Fields("EntryStamp") = Now()
rs.Update

DoCmd.SetWarnings True
rs.Close
Set rs = Nothing
db.Close

ExitSub:
    Exit Function

ErrorHandler:
    MsgBox "Error " & Err.Number & ": " & Err.Description
    Resume ExitSub

End Function


Option Compare Database
Option Explicit

Public Function ExitStamp()
On Error GoTo ErrorHandler

Dim db As Database
Dim rs As Recordset
Dim fldEnumerator As Object
Dim fldColumns As Object

Set db = CurrentDb
Set rs = db.OpenRecordset("tblInsNOuts")
Set fldColumns = rs.Fields

DoCmd.SetWarnings False

While Not rs.EOF
    For Each fldEnumerator In rs.Fields
        If fldEnumerator.Name = "SessionID" Then
            If fldEnumerator.Value = SessID Then
                rs.Edit
                rs.Fields("ExitStamp") = Now()
                rs.Update
            End If
        End If
    Next
    rs.MoveNext
Wend

DoCmd.SetWarnings True
rs.Close

Set rs = Nothing
db.Close

ExitSub:
    Exit Function

ErrorHandler:
    MsgBox "Error " & Err.Number & ": " & Err.Description
    Resume ExitSub

End Function

Option Compare Database

Private Sub Form_Close()
    Call ExitStamp
End Sub

`

1 个答案:

答案 0 :(得分:0)

我更进了一步。我能够打开另一个Windows映像,因此可以打开数据库的第二个快照。当我同时打开两个快照时,它会记录两者的输入时间,但是当关闭第一个快照时,它会丢弃SessID的值。我意识到仍然打开的快照无法再访问SessID的值,因为它现在为空。仍需要一些帮助人员