Блокировка открытия приложения с удержанием 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


 



© 2018 | Анна Петросян | pashelp@yandex.ru