如何在VB中检索64位/ Access 2013的Windows用户ID?

时间:2013-05-30 23:38:00

标签: vba 64-bit ms-access-2013

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

我已尝试在How to get logged-in user's name in Access vba?建议的解决方案,但显然这不适用于我的64位计算机。我也试图弄清楚如何在http://msdn.microsoft.com/en-us/library/office/gg278832.aspx整合信息,但我无法弄明白。

我是 NOVICE VB程序员,所以我真的需要实际的代码才能做到这一点。 (我可以[可能]弄清楚如何以及为什么代码在我看到之后会做它所做的事情,但此时我无法从头开始提出它。)

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

非常感谢!

阿罗哈, -pt

2 个答案:

答案 0 :(得分:1)

您链接的答案适用于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位访问权限)

答案 1 :(得分:0)

这也应该有效:

Dim wshNet As Object
Set wshNet = CreateObject("WScript.Network")
MsgBox "Hello, " & wshNet.UserName & "!"
Set wshNet = Nothing