Сброс параметров запуска Access

версия для печати

Получил заказ: нужно переделать отчет в готовом проекте Access. Вроде бы ничего сложного, но разработчик через параметры запуска проекта скрыл все менюшки и окно базы данных. Т.о. добраться до исходников невозможно.. почти. Немного погуглив нашел старый vbs-скрипт, качующий с сайта на сайт. Чтобы больше не искать, размещаю его здесь. Может пригодится еще.

Первым делом можно через Shift попытаться получить окно базы данных и полные меню. Удерживаем shift при двойном щелчке по базе данных в проводнике. Тогда Access должен открыть БД, игнорируя заданные параметры запуска. Однако, программно можно и такое поведение отключить.

Скрипт работает только с mdb-файлами, т.е. если проект скомпилирован в mde, то нужен другой подход. При установке защиты запускать скрипт желательно из другого проекта, вдруг нужно будет откатиться. При снятии защиты ни как иначе запустить не получится, только из другого проекта ;)

Public Function ChangeProperty(DB As Database, strPropName As String, varPropType As Variant, varPropValue As Variant) As Boolean
    Dim prp As Property
    On Error GoTo CHANGE_ERROR
    DB.Properties(strPropName) = varPropValue
    ChangeProperty = True
    Exit Function
CHANGE_ERROR:
    If Err = 3270 Then ' property not found
        Set prp = DB.CreateProperty(strPropName, varPropType, varPropValue)
        DB.Properties.Append prp
        Resume Next
    Else
        ChangeProperty = False
        MsgBox Err.Description
    End If
End Function

Public Function GetProperty(DB As Database, strPropName As String, ByRef varPropValue As Variant) As Boolean
    Dim prp As Property

    On Error GoTo CHANGE_ERROR
    varPropValue = DB.Properties(strPropName)
    Exit Function
CHANGE_ERROR:
    If Err = 3270 Then ' property not found
        varPropValue = ""
        Resume Next
    Else
        MsgBox Err.Description
    End If
End Function

Public Sub Lockxx(strpath As String)
'strpath - проект-жертва (путь+имя файла)
'strpath = "D:\temp\project1.mdb"
  On Error Resume Next
  If Dir(strpath) = "" Then
    Select Case Err.Number
      Case 76:
        MsgBox "Путь не найден!!!", vbCritical + vbOKOnly
        Exit Sub
      Case Else
    End Select
  End If
  If Right(strpath, 3) <> "mdb" Then Exit Sub
  Dim DB As Database
  Set DB = OpenDatabase(strpath) ' весь этот код желательно выполнять не в той базе, которую закрываешь.
  'ChangeProperty DB, "AppTitle", dbText, "Заголовок главного окна аксесса"
  'ChangeProperty DB, "StartupForm", dbText, "Формабазы"
  'ChangeProperty DB, "StartUpMenuBar", dbText, "MainMenu"  'Название твоего меню, которое будет вместо стандартного аксессовского
  ChangeProperty DB, "StartupShowDBWindow", dbBoolean, True  'Не показывать окно базы данных
  ChangeProperty DB, "StartupShowStatusBar", dbBoolean, False 
  ChangeProperty DB, "AllowBuiltinToolbars", dbBoolean, False
  ChangeProperty DB, "AllowToolbarChanges", dbBoolean, False
  ChangeProperty DB, "AllowFullMenus", dbBoolean, False
  ChangeProperty DB, "AllowShortcutMenus", dbBoolean, False
  ChangeProperty DB, "AllowBreakIntoCode", dbBoolean, False 'В MDE это не нужно, так как кода в текстовом виде там нету.
  ChangeProperty DB, "AllowSpecialKeys", dbBoolean, False 'Не будет работать F11 и т.п.
  ChangeProperty DB, "AllowBypassKey", dbBoolean, True 'Если при открытии
    'базы держать Shift, то база откроется, игнорируя все запреты и стартовые
    'настройки. Этот ключ запрещает и это, то есть в базу совсем нельзя будет
    '
залезть в обход стартовых настроек. Если ты хочешь опять открыть базу, то
    'ставишь этот ключ в True. Все остальные настройки доступны через меню Сервис > Параметры запуска...
  DB.Close
End Sub
[1oo%, EoF]

Понравилась статья? Расскажите о ней друзьям:

Метки: MS Office, кодинг

Комментарии

Показать/скрыть правила
Имя
[i] [b] [u] [s] [url]
:-) ;-) :D *lol* 8-) :-* :-| :-( *cry* :o :-? *unsure* *oops* :-x *shocked* *zzz* :P *evil*

Осталось 1000 символов.
Код защиты от спама Обновить код
Каждый комментарий проходит ручную модерацию. 100% фильтрация спама.
Для работы модуля комментариев включите javaScript

Продвижение
Время
Метки