Как каждый декомпилирует и перекомпилировал приложение базы данных?

У меня есть приложение базы данных Access, и я хотел бы знать надлежащий способ декомпилировать и перекомпилировать его.

35
задан StockB 20 December 2013 в 15:03
поделиться

2 ответа

Чтобы декомпилировать базу данных Access, вам необходимо создать ярлык со следующими элементами:

  1. Путь к исполняемому файлу MS Access (MSACESS.exe)
  2. Путь к базе данных, которую вы хотите декомпилировать
  3. Флаг / decompile

В целом ярлык будет выглядеть примерно так:

"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "C:\users\tim\documents\Mydatabase.mdb" /decompile

Очевидно, пути в вашей системе будут другими.

Я бы рекомендовал сделать резервную копию вашей базы данных перед запуском этой команды.

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

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

После сжатия и восстановления вы можете перекомпилировать код VBA, открыв любой модуль и используя команду Debug Compile [DatabaseName] .

Если это то, что вы хотите делать часто, вы можете создать ярлык «Доступ к декомпиляции» в меню «Отправить». Если у вас есть этот ярлык в меню «Отправить», вы сможете щелкнуть правой кнопкой мыши любую базу данных Access и выбрать «Отправить -> Access Decompile», что намного проще, чем создание ярлыка для конкретной базы данных.

Выполните следующие действия, чтобы настроить меню «Отправить» с помощью ярлыка Access Decompile.

  1. Создайте ярлык для исполняемого файла Access.
  2. Добавьте флаг / decompile в цель для ярлыка. Ярлык будет выглядеть так:

    "C: \ Program Files \ Microsoft Office \ Office \ MSACCESS.EXE "/ decompile

  3. Откройте проводник Windows и вставьте в адресную строку следующее:

    % APPDATA% \ Microsoft \ Windows \ SendTo

  4. Скопируйте созданный вами ярлык в папку SendTo.

  5. The Access Decompile Ярлык теперь будет доступен для использования.

Чтобы вызвать ярлык Access Decompile, щелкните правой кнопкой мыши базу данных Access в проводнике Windows и выберите «Отправить -> Access Decompile». Обязательно удерживайте нажатой клавишу Shift, чтобы обойти любые код запуска в базе данных.

48
ответ дан 27 November 2019 в 06:32
поделиться

@ Практические инструкции Тима Лентина хороши, но он опускает фактические шаги, необходимые для того, чтобы декомпиляцию стоило делать:

  1. создайте резервную копию базы данных.

  2. уплотнение базы данных.

  3. используя ярлык, созданный с помощью инструкций Тима, откройте свою базу данных.

  4. закройте этот экземпляр Access.

  5. откройте новый экземпляр Access и откройте базу данных, которую вы только что декомпилировали, но УБЕДИТЕСЬ, что вы минуете весь код запуска (т.е. удерживайте клавишу shift). Если вы этого не сделаете, то можете вернуться к шагу 3 и попробовать снова, так как если запустится код запуска, то ваш код перекомпилируется раньше, чем вы будете готовы это сделать.

  6. уплотните декомпилированную базу данных (и убедитесь, что вы удерживаете клавишу shift, чтобы обойти код запуска; см. #5).

  7. откройте VBE и в меню Debug выберите COMPILE [имя проекта].

  8. в меню файл сохраните проект.

  9. снова уплотните.

Почему все эти шаги необходимы?

Потому что вы хотите не просто декомпилировать VBA, вы хотите убедиться, что все страницы данных, где хранился скомпилированный p-код, полностью удалены перед перекомпиляцией.

Я также рекомендую:

  1. в опциях VBE отключить COMPILE ON DEMAND

  2. в VBE добавить кнопку COMPILE на панель инструментов.

  3. компилируйте часто с этой кнопкой на панели инструментов, после каждых двух или трех строк кода.

Декомпиляция - это не то, что вы должны использовать постоянно, но во время интенсивного кодирования я могу делать декомпиляцию пару раз в день. И обычно я декомпилирую/рекомпилирую как последний шаг перед выпуском приложения в промышленную эксплуатацию.

Наконец, прочитайте статью Майкла Каплана на эту тему , чтобы лучше понять ее.

37
ответ дан 27 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: