使用弹出密码框绕过班次

时间:2015-10-07 11:31:11

标签: access-vba 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 个答案:

答案 0 :(得分:2)

我不认为在禁用班次时可以捕获启动事件。我一直在做的是在启动表单上添加一个隐藏的密码文本框。密码文本框可以通过“隐藏按钮”激活。该效果仅适用于下一个启动事件(和开启),因此它不像您喜欢它那样直接,但它是可靠的。

  1. 将一个矩形添加到将充当鼠标捕手的启动表单。确保Back Style设置为Normal,但颜色与表单BackColor的颜色相同,因此不可见。
  2. 在启动表单中添加隐藏文本框。将Input Mask设为Password
  3. 将Double_Click事件添加到矩形,将取消隐藏密码文本框
  4. 在密码文本框中添加AfterUpdate事件,如果密码正确,则会启用shift键(AllowBypassKey)。您可以在下次启动时进入访问界面。
  5. 使用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
    

    首先,您必须通过运行第一个过程来创建属性。之后你可以使用另外两个。