2012-02-19 3 views
0

У меня есть форма в системе бронирования, которая содержит подформу, которая является копией старого элемента управления календарем ActiveX, которого нет в Access 2010. Одно из конкретных применений заключается в создании нового бронирования. Это означает, что форма «сидит» на новой записи. Однако я не хочу, чтобы запись записывалась до тех пор, пока я не уверен, что все данные правильно проверены.Как предотвратить щелчки на подформе, вызывающей обновления в основной форме

Однако у меня есть немного Gotcha. Если пользователь нажимает на календарь, чтобы выбрать новую дату, мой мастер формирует событие Before_Update - указывает, что Access пытается сохранить содержимое форм. Как я уже сказал, я не хочу, чтобы это произошло до того, как я буду готов. Поэтому я добавил флажок unbound invisible в мою форму, которая инициализируется как false. В событии Before update я проверяю, истинно это или нет, и если это не я ОТМЕНА обновления.

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

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

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

ответ

1

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

+0

Это был самый простой маршрут, и он работал отлично. – akc42

0

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

+0

к сожалению, это это существующее приложение, и я не могу радикально изменить пользовательский интерфейс без каких-либо сложных обсуждений. – akc42

+0

@ akc42 У вас не может быть несвязанной непрерывной подформы, и формы, которые полагаются на несвязанные данные, будут огромной работой, так как все данные должны быть извлеченным из набора записей a nd записывается в форму по коду. Несвязанные формы выглядят как довольно радикальные изменения для меня - просто переход к следующей записи займет некоторое время. – Fionnuala

0

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

этих подходов обойти это сохранить вопрос. Тем не менее, как отметили Access всегда сохраняется запись автоматически при переходе от основной формы к югу от формы. Он делает это, чтобы заставить PK ключ Autonumber будет генерироваться + спасено.

+0

К сожалению, я не могу. Мой клиент имеет доступ к Access 2000 и не обновляет его. – akc42