Как открыть заблокированное приложение в режиме конструктора? - PullRequest
2 голосов
/ 01 октября 2010

Наш разработчик MS Access 2000 покинул компанию год назад.Нам нужно открыть его приложение в режиме конструктора, чтобы внести изменения.Двойной щелчок по файлу .mdb, удерживая клавишу Shift, не работает.Когда я делаю так, что панель инструментов разработчика показывает на доли секунды, все панели инструментов исчезают, и приложение открывается так, как его увидят пользователи.Панели инструментов не отображаются, и для запуска приложения видна только базовая панель инструментов.Я пытался использовать инструмент восстановления пароля, упомянутый здесь , но инструмент говорит, что пароля нет.Может кто-нибудь сказать мне, как я могу открыть это приложение для внесения изменений в код?

Ответы [ 3 ]

5 голосов
/ 28 августа 2012

Ответ Бет работал на меня и коллегу. Я скопировал решение здесь из ссылки на случай, если ссылка умрет.

"... Чтобы разблокировать Access DB, вы можете использовать следующее, если знаете полный путь к вашей базе данных.

Скопируйте следующую функцию в модуль в другой базе данных и вызовите функцию. Вам нужно будет указать в strPath путь к вашей базе данных. "

Public Function ResetExternalDatabaseBypassKey _
 (Optional tfAllow As Boolean = True)

'Name:      ResetExternalDatabaseBypassKey (Function)
'Purpose:   Sets AllowByPassKey to true in another Access Database
'Author:    John Spencer UMBC-CHPDM
'Date:      May 02, 2000, 12:08:19 PM
'*******************************************
Dim dbs As Database
Dim strPath As String

On Error GoTo ResetExternalDatabaseBypassKey_ERROR

strPath = "C:/MyDatabases/SomeDataBaseName.mdb"

Set dbs = DBEngine.Workspaces(0).OpenDatabase(strPath)
dbs.Properties("AllowByPassKey") = tfAllow


ResetExternalDatabaseBypassKey_ERROR:
Select Case Err.Number
   Case 3270   'Property not found
      MsgBox "Allow Bypass Key property does not exist " & _
             "for the chosen database."
   Case Else
      MsgBox Err.Number & ": " & Err.Description
   End Select

End Function
1 голос
/ 01 октября 2010

Убедитесь, что не осталось ни одной копии без этого кода.

Это типичный код, используемый для подобных вещей, SetByPass Есть инструкции нажать Cntl-G, чтобы открыть VBA Editor, и запустить код для сброса этой вещи.

0 голосов
/ 02 октября 2010

Вы пытались создать новую пустую базу данных, а затем импортировать все?

Звучит так, как будто был установлен обходной ключ переключения, но, как отмечалось, это обычно требуется только для развертывания. На самом деле, для любого разработчика доступа это довольно стандартный подход.

Таким образом, неясно, было ли что-то здесь заблокировано, или человек просто настроил все так, как должно быть большинство приложений доступа при развертывании на пользователях.

Единственное, что вы теряете при импорте в другое приложение, это настройки запуска инструментов и клавиша Shift. Если есть пользовательские меню, убедитесь, что вы отметили опцию их импорта. (Тем не менее, будьте осторожны, так как иногда можно настроить пользовательские меню для запуска макроса при запуске, и это был старый трюк безопасности). Итак, если при однократном импорте с панелями инструментов и удержанием клавиши Shift код запуска запуска по-прежнему выполняется, попробуйте создать еще одну пустую базу данных и на этот раз импортировать все, кроме меню + панели инструментов из старого приложения. Таким образом, удержание клавиши Shift будет работать для вас.

Кроме того, если система не запрашивает у вас пароль, что вы ожидаете от программы восстановления пароля? Все, что вам нужно, это базовые навыки разработчика доступа, чтобы справиться с этой проблемой, и такие вещи, как удаление пароля, когда вас не запрашивают пароли, не приведут вас сюда.

С другой стороны, если после импорта всех форм в новую базу данных возможность проектирования становится недоступной, это фактически был файл mde, и вы оказались в довольно сложной ситуации, если не можете найти исходный файл mdb. используется для создания mde.

...