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

Posted

技术标签:

【中文标题】如何让 Microsoft Access 仅使用 shift 键在设计模式下打开【英文标题】:How to get Microsoft Access to only open in design mode with shift key 【发布时间】:2015-01-13 14:49:49 【问题描述】:

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

【问题讨论】:

【参考方案1】:

如果你能听懂这家伙的口音,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())

然后,您可以将该变量名称和时间戳写入“审核”表,以跟踪数据库中的人员以及他们何时登录。

【讨论】:

我在 2:23 左右找到了我正在寻找的内容,在“功能区和工具栏选项”下的“选项”中,我需要取消选中“允许完整菜单”。现在要是我知道谁在我的数据库里乱搞就好了…… 如果它在 Intranet 上,那么您可以在用户打开数据库时捕获他们的 LAN ID。这不会告诉你是谁在编辑它,但它至少会让你缩小范围。从理论上讲,您可能可以捕获 F10 键的任何用法并存储当前用户的 LAN,然后您就会确切地知道它是谁,但我自己从未这样做过,所以我不确定它会起作用。 根据您的需要,您还可以锁定其中大部分功能,因此将来任何人都很难进行此类更改。虽然这可能相当耗时,但如果您需要,可以选择。 最终用户通过 Citrix(我不熟悉)打开它,它链接到网络共享上的文件。不过,我很想知道打开它的人的 ID - 这仍然可能吗,是通过 Access 还是其他方式完成的? @Kelly - 请参阅我上面的编辑,了解如何跟踪谁使用数据库。它适用于我,我不是 100% 肯定它适用于 citrix,但它可能。

以上是关于如何让 Microsoft Access 仅使用 shift 键在设计模式下打开的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Access 查询 - 将两个查询合并为一个

将文件拖放到 Microsoft Access 中

Microsoft Access 2007 - 查看报表中使用的查询?

使用 HTML 和 Microsoft Excel/Access 的注册系统

从 Microsoft Access 数据库更新组合框中的项目

如何使用 Microsoft Access 数据库的附件数据类型?