1

我需要获取代码来检索 64 位系统上 VB(用于 Access 2013)中当前会话的 Windows 用户 ID。

我已经尝试了如何在 Access vba 中获取登录用户名中建议的解决方案?,但显然这在我的 64 位机器上不起作用。我还试图弄清楚如何在http://msdn.microsoft.com/en-us/library/office/gg278832.aspx上集成信息,但我无法弄清楚。

我是一个新手VB 程序员,所以我真的需要实际的代码来做到这一点。(我可以[可能]弄清楚代码在我看到它之后是如何以及为什么会这样做的,但我现在还不能从头开始想出它。)

我希望这个答案对其他人也有帮助。

非常感谢!

阿罗哈,-pt

4

2 回答 2

3

您链接到的答案适用于 32 位版本的访问。对于 64 位版本,您需要使用指针安全签名:

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

(它可能适用nSize As Long- 我手头没有 64 位访问权限)

于 2013-05-30T23:43:45.517 回答
1

这也应该有效:

Dim wshNet As Object
Set wshNet = CreateObject("WScript.Network")
MsgBox "Hello, " & wshNet.UserName & "!"
Set wshNet = Nothing
于 2013-05-31T12:54:22.183 回答