Microsoft 访问表单打开的用户日志



我有一个带有sql后端的Microsoft访问数据库。我需要成功打开表单的日期和时间的Windows用户的日志。我更喜欢将数据记录到链接的 sql 服务器表中。有没有办法做到这一点?

这将为你获得Windows用户名:

Environ("username")

这将为您提供日期和时间:

Now()

我建议在公共模块中定义一个函数,例如:

Function winuser() As String
winuser = Environ("username")
End Function

然后使用以下 SQL 将记录插入到日志表中:

insert into log ([username], [timestamp]) values (winuser(), now())

logusername&timestamp更改为表和字段的名称。

然后,可以将此 SQL 作为表单的On Open事件的一部分执行。

作为Lee Macs回答的附录:

出于安全原因,您应该使用

CreateObject("Wscript.Network").UserName

而不是

Environ("username")

检索到当前登录的Windows用户,因为环境变量username很容易被覆盖(意味着有人可以假装不同的用户(。

或者,如果您愿意,也可以使用 Windows API:

Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function GetWindowsUserName() As String
Dim buffer As String * 255
Dim result As Long
result = GetUserName(buffer, 255)
If result > 0 Then _
GetWindowsUserName = Left(buffer, InStr(buffer, Chr(0)) - 1)
End Function

最新更新