Блокировка открытия приложения с удержанием Shift-а |
См. аналог тут (Принудительное использование или отключение параметров запуска в проекте базы данных Access).
Чтобы функция была вызвана при открытии базы, ее нужно вызвать из макроса AutoExec. После того, как функция отработала 'Работа в режиме защиты начнется при следующем входе в базу' для всех пользователей, кроме, например пользователя 'petrosyan' возможность открывать базу, удерживая Shift, блокируется.
См. также: получить логин пользователя (функция UserName()).
Function LockShift() 'http://msa.km.ru Dim mydb As Database Dim prp As Property Const conPropNotFoundError = 3270 Dim TmpBool As Boolean On Error GoTo Change_Err Set mydb = CurrentDb() If UserName() = "petrosyan" Then 'UserName - функция, возвращающая логин пользователя If mydb.Properties("AllowBypassKey") = True Then If MsgBox("База открыта " & Chr(13) & " для редактирования" _ & Chr(13) & " Защитить?", vbInformation + vbYesNoCancel) = vbYes Then mydb.Properties("AllowBypassKey") = False TmpBool = MsgBox("Работа в режиме защиты" _ & " начнется при следующем входе в базу.", vbInformation) End If Else If MsgBox("База закрыта " & Chr(13) & " редактирование невозможно" _ & Chr(13) & " Открыть?", vbExclamation + vbYesNoCancel) = vbYes Then mydb.Properties("AllowBypassKey") = True TmpBool = MsgBox("При следующем входе в базу Shift будет работать", vbInformation) End If End If Change_Bye: Exit Function Change_Err: If err = conPropNotFoundError Then Set prp = mydb.CreateProperty("AllowBypassKey", dbBoolean, True) mydb.Properties.Append prp Resume Next Else Resume Change_Bye End If End If End Function
|