Событие, которое срабатывает при изменении формы - PullRequest
0 голосов
/ 14 января 2010

У меня есть форма, которая отображает информацию о проекте. Большинство полей в форме привязаны к таблице проекта и отображаются и обновляются так же, как и связанные поля. Тем не менее, у меня также есть 10 флажков, которые приходят из таблицы ProjectAudience. Только если флажок в форме установлен, в таблице есть соответствующая запись. Поэтому мне нужно вставлять и удалять записи, так как эти поля отмечены и не отмечены.

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

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

Основано на комментариях ниже: Любая комбинация полей от одного до всех может быть отмечена, а не только одна коробка. Поэтому возможно, что я уничтожу все записи и не вставлю обратно ... или добавлю 10 записей, если отмечен каждый флажок. (Также я использую Microsoft Access 2003)

Ответы [ 2 ]

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

Рассматривали ли вы добавление этих флажков в группу параметров и использование событий из этой группы?

РЕДАКТИРОВАТЬ Комментарий, Альтернативный подход, не используйте группу параметров, но добавьте код в строку события для всех соответствующих параметров.

Вам не нужен код для 10 различных событий, вы можете установить строку события, скажем, «при нажатии» на имя функции, скажем:

On Click  : =TestMe()

Строка событий http://ltd.remou.com/access/EventLine.png

Затем вам нужна функция:

Function TestMe()
    MsgBox "You clicked " & Screen.ActiveControl.Name
End Function
0 голосов
/ 15 января 2010

Вы можете использовать метод BeforeUpdate. Однако, если были изменены только флажки, это событие не сработает, поскольку запись, к которой привязана форма, не изменилась.

Я бы посоветовал связать события с флажками. Создайте функцию UpdateCheckbox (CheckboxID как целое число), которая делает то, что вы хотите, и поместите это в событие 'OnClick' из ckeckboxes: = UpdateCheckbox (1). Измените 1 для различных флажков.

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