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