如何让 Microsoft Access 仅在设计模式下使用 shift 键打开

How to get Microsoft Access to only open in design mode with shift key

我有一个 Microsoft Access 2010 数据库突然在设计模式下打开 - 所以它在功能区中显示创建、外部数据和数据库工具选项,我可以看到所有表、查询等 - 没有我打开它时按下shift键。有谁知道允许这样做的设置?我不想要这样-我想要这样,如果用户双击打开文件,他们应该看到在选项中设置的显示形式,而不是所有开发人员选项。

如果你能听懂这家伙的口音,this tutorial其实很扎实,会帮你锁定一切。

如果你想获得网络用户名,试试这个:

将此代码放在新模块的声明中:

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

然后,将此函数添加到该模块以获取用户名:

Public Function GetNetworkUserName() As String
On Error GoTo Err_Handler
    'Purpose:   Returns the network login name
    'Return:    The name, or "{Unknown}" on error.
    'Note:      Safer than testing Environ().
    Dim lngLen As Long
    Dim lngX As Long
    Dim strUserName As String

    strUserName = String$(254, 0&)
    lngLen = 255&
    lngX = apiGetUserName(strUserName, lngLen)
    If (lngX > 0&) Then
        strUserName = Left$(strUserName, lngLen - 1&)
    End If

    If strUserName <> vbNullString Then
        GetNetworkUserName = strUserName
    Else
        GetNetworkUserName = "{unknown}"
    End If

Exit_Handler:
    Exit Function

Err_Handler:
    Call LogError(Err.Number, Err.Description, conMod & ".fOSUserName")
    Resume Exit_Handler
End Function

然后,在一个表单(可能是您的主表单或打开表单)上,您可以通过将其放在 OnLoad 事件的某处来获取用户名:

UName = UCase(GetNetworkUserName())

然后您可以将该变量名和时间戳写入 "Auditing" table 以跟踪数据库中的人员以及他们的登录时间。