2009-03-25 5 views
1

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

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

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

Усеченный для типографий.

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

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

Что я пробовал:

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

ответ

2

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

  • Сделайте резервную копию MDB
  • Откройте MDB (удерживайте клавишу SHIFT вниз, чтобы остановить любой код от бега) через короткий разреза: MSAccess .exe database.mdb/декомпилировать
  • Открыть модуль и скомпилировать приложение
  • Сохранить и закрыть доступ
  • Open снова (SHIFT снова) остроумие Ху декомпилировать
  • Компактных и восстановление базы данных
  • закрыть доступ
+1

Decompile - лучшее предложение +1, но лучший заказ - закрыть экземпляр Access, открытый с помощью/декомпиляционного переключателя после открытия MDB, затем открыть его в новом экземпляре (с ключом SHIFT), компактном, * затем * скомпилировать, а затем снова сжать (каждый раз с помощью клавиши SHIFT). –

+0

Я всегда компилирую, закрываю, потом открываю и закрываю. Я всегда ненавижу закрывать доступ в несжатом состоянии. –

0

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

0

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

+0

Это должно быть переведено на комментарий диджея. –

1

У меня был аналогичная проблема. Я обнаружил, что я назвал недостающую форму в меню STARTUP в качестве формы по умолчанию для открытия при запуске Access. Я открыл Tools> Startup и удалил имя отсутствующих форм из поля «Display/Form/Page» в Startup. Моя проблема решена.

1

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

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

0

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