Как отключить вход с Shift'ом в Access'e?

Программирование на Visual Basic for Applications
Demion
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 01.03.2005 (Вт) 6:10

Как отключить вход с Shift'ом в Access'e?

Сообщение Demion » 15.07.2005 (Пт) 4:54

и как можно поменять вместо шифта какуюнить другую клавишу?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.07.2005 (Пт) 8:14

Нельзя.
Можно отключить совсем.
А зачем это нужно? Если захотят взломать, все равно взломают.
Lasciate ogni speranza, voi ch'entrate.

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 20.07.2005 (Ср) 21:14

Простым Юзверям это очень сложно
Function BazyShift()
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
Dim TmpBool As Boolean
On Error GoTo Change_Err
If dbs.Properties("AllowBypassKey") = True Then
If MsgBox(" Реагируем на " & Chr(13) & " открытый режим базы" & Chr(13) & " Защитить?", vbInformation + vbYesNoCancel) = vbYes Then
dbs.Properties("AllowBypassKey") = False
TmpBool = MsgBox("Нормальная работа в режиме ЗАЩИТЫ начнется при следующем старте.", vbInformation)
End If
Else
If MsgBox(" Нет реакции на " & Chr(13) & " Нормальное состояние базы" & Chr(13) & " Хотите включить?", vbExclamation + vbYesNoCancel) = vbYes Then
dbs.Properties("AllowBypassKey") = True
TmpBool = MsgBox("Вы можете просматривать и редактировать объекты базы при следующем входе в нее. Незабудьте потом отключить реагирование на .", vbInformation)
End If
End If

Change_Bye:

Exit Function

Change_Err:
If Err = conPropNotFoundError Then ' Свойство не найдено.
Set prp = dbs.CreateProperty("AllowBypassKey", dbBoolean, True)
dbs.Properties.Append prp
Resume Next
Else
' Неизвестная ошибка.
Resume Change_Bye
End If
End Function

Или вот еще ( с какого-то форума)
Если ваше приложение работает в runtime-версии Access, его пользователи не смогут пропускать ни макрос AutoExec, ни макрос, который задан в командной строке. Эта версия Access просто игнорирует нажатие клавиши [Shift]. Но даже если у пользователей установлена обычная версия Access, вы все равно можете запретить пропуск загрузочных макросов, для чего свойству базы данных AllowBypassKey нужно присвоить значение False . Следующие процедуры из модуля basByPassKey демонстрируют включение и отключение этой опции (для обоих типов файлов, MDB и ADP).

Public Sub adhSetBypassKeyMDB(AllowIt As Boolean)
Dim db As DAO.Database
Dim prp As DAO.Property

On Error Resume Next
Set db = CurrentDb()
db.Properties("AllowByPassKey") = AllowIt
If Err.Number = adhcErrPropNotFound Then
Set prp = db.CreateProperty("AllowByPassKey", _
dbBoolean, AllowIt)
db.Properties.Append prp
End If
End Sub

для ADP:

Sub adhSetByPassKeyADP(AllowIt As Boolean)
CurrentProject.Properties.Add "AllowByPassKey", AllowIt
End Sub

Создаем макрос (именуем AutoExec) - запускаем им BazyShift
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 84

    TopList  
cron