Microsoft Access - 获取用户名并存储在表中

时间:2015-11-02 17:59:27

标签: ms-access access-vba

我制作了一个表来存储哪些用户打开数据库以及何时打开数据库。我有一个函数来获取VBA中的用户名,因为某些表单是受限制的。

如何获取新表中存储的所有用户名以及时间戳?

谢谢!

我想跟踪谁使用数据库,以及何时登录。就是这样。我有一个表设置来存储用户名和当有人打开数据库时的时间戳

我有用于在打开数据库时获取用户名的代码,并且它与我在表中的管理列表进行比较。那段代码是

Option Compare Database

Declare Function GetUserName& Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long)

Public Function UserName() As String

    Dim str As String
    Dim lng As Long

        str = String$(200, 0)
        lng = 199

        If GetUserName(str, lng) Then
            UserName = Left$(str, lng - 1)
        End If

End Function

1 个答案:

答案 0 :(得分:1)

创建一个名为“Splash”的空表单,并将其设置为打开数据库时打开的表单(选项 - >当前数据库 - >显示表单)

将此代码放入Form_Open事件中。这将在有人打开数据库时加载屏幕,将记录插入名为LoginRecord的表中,然后关闭表单。该操作对用户不可见。调整代码中的表/字段名称以适合您的情况。

Private Sub Form_Load()
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT INTO LoginRecord (UserName, LoginTime) VALUES ('" & Environ("Username") & "','" & Now() & "')"
    DoCmd.Close acForm, "Splash"
    DoCmd.SetWarnings True
End Sub