Как я могу избавиться от постоянного объекта формы VBA, который не поддерживает удаление формы? - PullRequest
1 голос
/ 25 марта 2009

У меня есть база данных MS Access 2003, которую я использую для разработки базового небольшого инвентарного приложения. По пути я добавил несколько посторонних форм и хотел вытащить их из БД. Я удалил большинство из них просто отлично, но один из них, похоже, оставил свой объект VBA. Все, что находится в объекте, это Option Compare Database. Теперь, когда я пытаюсь работать с базой данных, я получаю следующую ошибку:

The form name 'Transaction1' is misspelled or refers to a form that doesn't exist.

If the invalid form name is a macro, ...

Усечено для набора текста ради.

Да, я согласен, форма не существует. Что меня смущает так это то, что все другие формы, когда я их удалял, также уничтожали их объект VBA. Этот, несмотря ни на что, кажется, любит торчать, и я понятия не имею, как от него избавиться.

Как мне от этого избавиться?

Вещи, которые я пробовал:

  • Компакт и ремонт и БД
  • Создайте новую форму с именем ожидаемого, убедитесь, что он избавился от проблемы, а затем удалите эту форму.

Ответы [ 6 ]

2 голосов
/ 25 марта 2009

Вы можете попробовать ключ / декомпилировать

  • Сделайте резервную копию вашего mdb
  • Откройте ваш MDB (удерживая клавишу SHIFT, чтобы остановить любой код) через короткий cut: msaccess.exe database.mdb / декомпилировать
  • Откройте модуль и скомпилируйте ваше приложение
  • Сохранить и закрыть Access
  • Открыть снова (снова SHIFT) без декомпиляции
  • Компактная и ремонтная база данных
  • закрыть доступ
1 голос
/ 09 мая 2012

Проблема, с которой я столкнулся, заключалась в том, что форма называлась ~ TMPCLP8151 и не отображалась в Access независимо от того, что я пытался, но я мог видеть ее в VBA в Project Explorer. Вот как я решил проблему. Я создал новую форму и создал процедуру обработки событий для Form_Open, которая содержала это: DoCmd.DeleteObject acForm, "~ TMPCLP8151"

Тогда я просто открыл форму, и, конечно же, код VB удалил форму, которую я не мог удалить сам.

1 голос
/ 14 января 2011

У меня была похожая проблема. Я обнаружил, что назвал отсутствующую форму в меню ЗАПУСК в качестве формы по умолчанию, которая открывается при запуске Access. Я открыл Инструменты> Автозагрузка и удалил имя отсутствующей формы из поля «Отображение / Форма / Страница» в Автозагрузке. Моя проблема решена.

0 голосов
/ 28 октября 2014

У меня была эта проблема. Я переименовал форму по умолчанию из Form Login в frmLogin, которая соответствует моему стилю именования, но программа все еще искала ее при открытии. Я использую 2013, поэтому я выбрал Файл »Параметры» CurrentDB и в раскрывающемся списке выберите новое имя. Старое имя остается в списке, пока вы не закроете и не перезапустите приложение.

0 голосов
/ 06 апреля 2009

Мне пришлось объединить оба решения для достижения цели. Сначала де- и перекомпилировать следующий компакт и ремонт затем создайте новую форму с тем же именем и удалите ее Обратите внимание, что форма имеет статус Hasmodule со значением Да

0 голосов
/ 25 марта 2009

У меня была такая же проблема. Я создал форму с тем же именем и снова удалил форму. Это исправило проблему. Пытаться. Кстати, попробуйте открыть новую форму в режиме конструктора, чтобы убедиться, что модуль VBA связан с новой формой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...