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

求助:AutoExec宏无法禁用CTRL+Break、F11等特殊按键

解决Access禁用CTRL+Break、F11等特殊按键的问题

兄弟,你这代码为啥不起作用?核心问题是赋值搞反了!你把所有属性都设成了1(也就是逻辑True),这其实是在允许这些功能,而不是禁用啊!要达到禁用特殊按键的目的,得把对应属性的值改成0(逻辑False)才行。

另外还有个小坑:如果这些数据库属性已经存在,直接用Append方法会触发错误,所以得先检查属性是否存在,存在就直接修改值,不存在再创建并追加。

给你修正后的代码,直接替换AutoExec宏里的内容就行:

Dim prp As DAO.Property
Dim db As DAO.Database
Set db = CurrentDb()

' 禁用CTRL+Break中断代码
On Error Resume Next
Set prp = db.Properties("AllowBreakIntoCode")
If Err.Number <> 0 Then
    Set prp = db.CreateProperty("AllowBreakIntoCode", 1, 0)
    db.Properties.Append prp
Else
    prp.Value = 0
End If
On Error GoTo 0

' 禁用F11等特殊按键
On Error Resume Next
Set prp = db.Properties("AllowSpecialKeys")
If Err.Number <> 0 Then
    Set prp = db.CreateProperty("AllowSpecialKeys", 1, 0)
    db.Properties.Append prp
Else
    prp.Value = 0
End If
On Error GoTo 0

' 可选:禁用Shift键跳过启动项(注意:设为0后自己别被锁外面,先备份数据库!)
' On Error Resume Next
' Set prp = db.Properties("AllowByPassKey")
' If Err.Number <> 0 Then
'     Set prp = db.CreateProperty("AllowByPassKey", 1, 0)
'     db.Properties.Append prp
' Else
'     prp.Value = 0
' End If
' On Error GoTo 0

' 如果你还需要禁用其他相关功能(比如工具栏修改、完整菜单),可以参照上面的逻辑设置对应属性为0
' 比如AllowToolbarChanges、AllowFullMenus等,按需开启

操作步骤提醒:

  • 先按住Shift键打开数据库,跳过AutoExec宏的执行,这样才能顺利修改代码;
  • 替换完代码后保存数据库,然后正常重启数据库测试效果;
  • 如果要启用AllowByPassKey=0,一定要先备份数据库,不然以后想跳过启动项就麻烦了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:18:47