弹出密码框绕过班次
Posted
技术标签:
【中文标题】弹出密码框绕过班次【英文标题】:Bypass shift with pop up password box 【发布时间】:2015-10-07 11:31:10 【问题描述】:我正在尝试创建一个访问数据库,即使是绕过转移选项,用户也会关闭该数据库。我已经完成了执行此操作的代码,但我想添加的是当按下 shift 键时会弹出一个框,允许用户输入密码,并且绕过 shift 选项将再次起作用。有人知道这是否可能吗?
谢谢!
Function ap_DisableShift()
On Error GoTo errDisableShift
Dim db As DAO.Database
Dim prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb()
db.Properties("AllowByPassKey") = False
Exit Function
errDisableShift:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowByPassKey", _
dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox "Function 'ap_DisableShift' did not complete successfully."
Exit Function
End If
End Function
【问题讨论】:
【参考方案1】:我认为禁用 shift 时无法捕获启动事件。我一直在做的是在启动表单上添加一个隐藏的密码文本框。密码文本框可以通过“隐藏按钮”激活。该效果仅适用于下一次启动事件(及以后),因此它不像您希望的那样直接,但它是可靠的。
-
在启动窗体中添加一个矩形作为鼠标捕捉器。确保
Back Style
设置为 Normal
,但颜色与表单的 BackColor
相同,因此它是不可见的。
在启动表单中添加隐藏文本框。将Input Mask
设置为Password
向矩形添加一个 Double_Click 事件,这将取消隐藏密码文本框
在密码文本框中添加一个AfterUpdate
事件,如果密码正确,这将启用 shift 键 (AllowBypassKey
)。下次启动就可以进入访问界面了。
使用 AllowBypassKey:
Public Sub CreateLockProperty()
CurrentDb.Properties.Append CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, True)
End Sub
Public Sub SetToolLock(bLocked As Boolean)
CurrentDb.Properties("AllowBypassKey") = Not bLocked
End Sub
Public Function ToolLocked() As Boolean
ToolLocked = Not CurrentDb.Properties("AllowBypassKey")
End Function
首先,您必须通过运行第一个过程来创建属性。之后就可以使用其他两个了。
【讨论】:
我已经添加了我必须绕过班次的代码如何将密码部分添加到此代码中? 好吧...我认为代码有效,但它没有,您有禁用 shift 按钮的代码吗? 你最好搜索AllowBypassKey
。有很多关于它的帖子。如果它有效,那么我们可以查看您查询的密码部分。
我一直在搜索和尝试所有类型的代码,但都没有工作...是因为我的数据库是 .accdb 吗?
我添加了关于AllowBypassKey
我的答案的信息以上是关于弹出密码框绕过班次的主要内容,如果未能解决你的问题,请参考以下文章