2011-05-23 88 views
1

我正在爲我的Access程序登錄模塊。但我對此不甚瞭解。Access中的登錄模塊

這些用途使用Windows登錄登錄他們的計算機,並在數據庫中有一張描述每個登錄名和角色(工作人員,經理等)的表格。

我想要做的是當我的程序啓動時,它可以自動檢測Windows登錄,並根據表格決定隱藏一些表單或報告。

有什麼建議嗎?謝謝..

回答

4

試試這個。輸入此之外的程序:

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

,並輸入該程序:

Function GetUser() As String 
    Dim cn As String, Userstr As String 
    cn = String(1024, 0) 
    If GetUserName(cn, 1024) <> 0 Then GetUser = Replace(cn, Chr(0), "") 
End Function 

隨後的getUser()應該給你的Windows登錄名。我在XP機器上運行的幾個Access 2003 Frontier中使用它,並且沒有任何問題。

(附註:事實上,我從堆棧溢出這個代碼在很久以前,但我不知道是誰給了我,所以我不能給予適當的信貸)

+0

由於它的工作原理。但在WIN7上,它有效嗎?我手邊沒有帶WIN7的電腦,因此不能測試 – darkjh 2011-05-24 10:43:11

+0

@darkjh,可能不會。如果您使用的是Windows 7計算機,則可能使用的是Office 2007或更高版本,該版本使用VB.NET,而不是VBA。我認爲將這段代碼片段轉換爲VB.NET並不是很困難,但這是別人回答的問題,而不是我。 – PowerUser 2011-05-24 14:11:30

+0

它可能來自訪問網站http://mvps.org/access/,它是Usenet組comp.databases.ms-access的FAQ站點。 – 2011-05-29 00:48:41