You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MS Access数据库中为特定表单创建专属登录访问功能

在MS Access中为特定表单设置单用户登录权限的实现步骤

1. 创建登录窗口表单

  • 新建空白表单,添加以下控件:
    • 文本框(命名为txtUsername),用于输入用户名
    • 文本框(命名为txtPassword),用于输入密码;右键该文本框→属性→数据→输入掩码,选择「密码」类型,输入内容会显示为星号
    • 命令按钮(命名为cmdLogin),标题设为「登录」
    • 命令按钮(命名为cmdCancel),标题设为「取消」

2. 编写登录验证VBA代码

双击「登录」按钮打开VBA编辑器,粘贴以下代码(替换注释中的用户名、密码和目标表单名称):

Private Sub cmdLogin_Click()
    ' 替换为你指定的授权用户名和密码
    Const ALLOWED_USER As String = "专属用户名"
    Const ALLOWED_PWD As String = "专属密码"
    
    If Me.txtUsername.Value = ALLOWED_USER And Me.txtPassword.Value = ALLOWED_PWD Then
        ' 验证通过,标记已授权并打开目标表单
        gblIsAuthenticated = True
        DoCmd.OpenForm "需要权限的表单名称"
        DoCmd.Close acForm, Me.Name ' 关闭登录窗口
    Else
        MsgBox "用户名或密码错误,请重试。", vbExclamation, "登录失败"
        Me.txtUsername.SetFocus
        Me.txtUsername.Text = ""
        Me.txtPassword.Text = ""
    End If
End Sub

Private Sub cmdCancel_Click()
    ' 取消登录,关闭窗口
    DoCmd.Close acForm, Me.Name
End Sub

3. 添加全局授权标记与表单访问控制

  • 新建一个标准模块,定义全局变量用于标记登录状态:
Public gblIsAuthenticated As Boolean
  • 打开需要权限的目标表单,进入「打开」事件的代码编辑器,添加验证逻辑防止直接访问:
Private Sub Form_Open(Cancel As Integer)
    ' 未授权则取消打开表单
    If Not gblIsAuthenticated Then
        Cancel = True
        MsgBox "请通过登录窗口访问此表单。", vbExclamation, "无权限"
        DoCmd.OpenForm "登录窗口表单名称"
    End If
End Sub

4. 限制数据库操作权限

  • 隐藏导航窗格:打开「文件」→「选项」→「当前数据库」,取消勾选「显示导航窗格」;也可以通过AutoExec函数自动隐藏,在标准模块中添加:
Function AutoExec()
    DoCmd.NavigateTo "acNavigationCategoryObjectType"
    DoCmd.RunCommand acCmdWindowHide
End Function
  • 设置启动选项:在「当前数据库」设置中,将「显示窗体」选择为你的登录窗口表单,取消勾选「允许全部菜单」和「允许默认快捷菜单」,避免用户通过菜单绕过登录。

内容的提问来源于stack exchange,提问作者KApril

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 18:21:21