Что может помешать закрытию формы MS Access 2000? - PullRequest
1 голос
/ 17 сентября 2008

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

Ответы [ 6 ]

1 голос
/ 18 сентября 2008

Другая альтернатива -

(Me.Checkbox) 

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

(Me!Checkbox)

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

Интересно, может ли исходный пользователь установить неправильные параметры VBE? Если вы откроете VBE и зайдите в TOOLS | ОПЦИИ, на вкладке ОБЩИЕ, вы увидите несколько вариантов обработки ошибок. Следует выбрать BREAK OF UNHANDLED ERRORS или BREAK IN CLASS MODULE, но важно понимать, что если вы используете первый, вы можете не увидеть определенные виды ошибок.

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

1 голос
/ 17 сентября 2008

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

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

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

Вышеуказанные 2 строки - единственный способ, которым я нашел, чтобы предотвратить приглашение Access от всплывающих окон.

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

0 голосов
/ 17 сентября 2008

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

If Me.chkbox Then

против

If Me.chkbox.Value Then
0 голосов
/ 17 сентября 2008

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

0 голосов
/ 17 сентября 2008

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

0 голосов
/ 17 сентября 2008

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

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