Create a Module the Set the Shift Access Key to not allow entry. here is the
code.
How To Disable/Enable the Shift Bypass Key:
QUESTION >> Is there any way of preventing user's from holding down Shift
Key when opening up my database and bypassing the Start-Up options which have
been disabled.
I however, still need some sort of facility to do this, so I can add new
forms, queries etc. whenever necessary.
SOLUTION >> To prevent a user bypassing the start-up options you will need
to apply the following function and code to a command button (or ideally a
hidden option, such as to the double-click event of a label or graphic).
This will prevent anyone without the password bypassing the start-up by
using the Shift key.
The below function and command button code will allow you to use a password
protected input box to determine if the Shift key can be disabled or not.
You might have to set your "References" to DAO 3.6.
When you are viewing a Module, click the Tools menu > References.
Browse for Microsoft DAO 3.6
Select "Files of type: Executable Files (*.exe; *.dll)"
C:\Program Files\Common Files\Microsoft Shared\DAO)
Then explicitly dimension yourcode, i.e. Dim db As DAO.Database, prp As
DAO.Property
'***************** Code Start ***************
'Copy this function into a new public module.
Option Compare Database
Option Explicit
Public Function SetProperties(strPropName As String, varPropType As Variant,
varPropValue As Variant) As Integer
On Error GoTo Err_SetProperties
Dim db As DAO.Database, prp As DAO.Property
Set db = CurrentDb
db.Properties(strPropName) = varPropValue
SetProperties = True
Set db = Nothing
Exit_SetProperties:
Exit Function
Err_SetProperties:
If Err = 3270 Then 'Property not found
Set prp = db.CreateProperty(strPropName, varPropType, varPropValue)
db.Properties.Append prp
Resume Next
Else
SetProperties = False
MsgBox "SetProperties", Err.Number, Err.Description
Resume Exit_SetProperties
End If
End Function
'***************** Code End ***************
Once you have created the module, then you will need to attach the following
code to a command button (or label, graphic etc.):
'***************** Code Start ***************
'Assign this to the OnClick event of a command button (or double-click event
'of a label or graphic) named "bDisableBypassKey"
'Change the "TypeYourBypassPasswordHere" default password to your password
Private Sub bDisableBypassKey_Click()
On Error GoTo Err_bDisableBypassKey_Click
'This ensures the user is the programmer needing to disable the Bypass Key
Dim strInput As String
Dim strMsg As String
Beep
strMsg = "Do you want to enable the Bypass Key?" & vbCrLf & vbLf & _
"Please key the programmer's password to enable the Bypass Key."
strInput = InputBox(Prompt:=strMsg, title:="Disable Bypass Key Password")
If strInput = "TypeYourBypassPasswordHere" Then
SetProperties "AllowBypassKey", dbBoolean, True
Beep
MsgBox "The Bypass Key has been enabled." & vbCrLf & vbLf & _
"The Shift key will allow the users to bypass the startup options the next
time the database is opened.", _
vbInformation, "Set Startup Properties"
Else
Beep
SetProperties "AllowBypassKey", dbBoolean, False
MsgBox "Incorrect ''AllowBypassKey'' Password!" & vbCrLf & vbLf & _
"The Bypass Key was disabled." & vbCrLf & vbLf & _
"The Shift key will NOT allow the users to bypass the startup options the
next time the database is opened.", _
vbCritical, "Invalid Password"
Exit Sub
End If
Exit_bDisableBypassKey_Click:
Exit Sub
Err_bDisableBypassKey_Click:
MsgBox "bDisableBypassKey_Click", Err.Number, Err.Description
Resume Exit_bDisableBypassKey_Click
End Sub
'***************** Code End ***************
Once this is in place, a user will not have access to bypass the Start-Up
options.
As the administrator, you can then click on your command button, label or
graphic and will be presented with the following input box:
If the correct password is entered you will see the following message:
An inncorrect password will give the following message and not allow the
Shift key to bypass the Start-Up options: