Что может помешать закрытию формы MS Access 2000?

StackOverflow https://stackoverflow.com/questions/84332

  •  01-07-2019
  •  | 
  •  

Вопрос

Мой Access 2000 DB вызывает у меня проблемы - иногда (я не определил причину) форма "книга" не закрывается.Нажатие на его кнопку закрытия ничего не делает, File -> Close ничего не делает, даже закрытие Access не приводит ни к какому действию.У меня нет обработчика OnClose для этой формы.Единственное обходное решение, которое я могу найти, включает в себя открытие редактора Vba, внесение изменений в код для этой формы (даже добавление пробела, а затем немедленное удаление пробела), а затем возврат к закрытию формы "книга", закрытие ее и сообщение "нет, я не хочу сохранять изменения".Только тогда он закроется.Какая-нибудь помощь?

Это было полезно?

Решение

Вот сообщение на форуме, описывающее, я думаю, ту же проблему, с которой сталкиваетесь вы.В приведенном ниже отрывке приводится обходной путь.

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

я!subParts.sourceobject = "subBlank" 'subBlank - это моя форма, которая полностью пуста, без кода, элементов управления и т.д.docmd.закрыть acForm, "fParts", acSaveNo

Приведенные выше 2 строки - это единственный способ, который я нашел, чтобы предотвратить появление запроса доступа .

http://bytes.com/forum/thread681889.html

Другие советы

Другой альтернативой является

(Me.Checkbox) 

или мой предпочтительный синтаксис:

(Me!Checkbox)

Мне кажется, что в сообщениях в этой теме много путаницы.Ответ, который был выбран оригинальным постером, ссылается на статью, в которой пользователю было предложено сохранить изменения в дизайне к форме, но описанная здесь проблема, похоже, связана с неудачным закрытием формы, а не с проблемой сохранения (проблема сохранения возникла только в обходном решении, описывающем переход к VBE и внесение изменений в код).

Интересно, могли ли у исходного пользователя быть установлены неправильные параметры VBE?Если вы откроете VBE и перейдете в меню ИНСТРУМЕНТЫ | ПАРАМЕТРЫ на вкладке ОБЩИЕ, вы увидите несколько вариантов обработки ошибок.Следует выбрать BREAK ДЛЯ НЕОБРАБОТАННЫХ ОШИБОК или BREAK В МОДУЛЕ КЛАССА, но важно понимать, что при использовании первого варианта вы можете не увидеть определенные виды ошибок.

На самом деле недостаточно подробностей, чтобы диагностировать гораздо больше, кроме того факта, что ссылка на элемент управления checkbox, по-видимому, была причиной проблемы, но существует ряд рекомендаций по кодированию доступа, которые могут помочь вам избежать некоторых из этих странностей.Рекомендации, связанные с кодексом, приведены в Страница лучших практик Тони Тьюза это хорошее место для начала.

Это, конечно, странно.Есть ли у вас какие-либо элементы управления таймером в форме?Если вы это сделаете, попробуйте отключить его в OnClose.

Существует вероятность того, что за формой отображается окно сообщения с запросом, хотите ли вы сохранить изменения.Я считаю, что это окно сообщения является модальным, поэтому вы должны нажать "Да" или "Нет", прежде чем сможете что-либо сделать с формой, поэтому вы не можете ее закрыть.

Есть ли в вашей форме событие выгрузки?Это может быть отменено, и если это так, то форма не закроется, когда она находится в режиме просмотра формы.Она закроется только в режиме конструктора, который при редактировании кода vba является тем, что форма делает в окне доступа при редактировании кода.

Есть ли в вашей форме флажок, кнопка переключения или кнопка выбора?В Access 2000 есть ошибка, из-за которой Access не закрывается, если вы проверяете значение без явного использования свойства Value в коде vba, например:

If Me.chkbox Then

против:

If Me.chkbox.Value Then
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top