MS access отсутствует в событии списка и подчиненной форме

#ms-access #vba

#ms-access #vba

Вопрос:

Я создал форму опроса в ms access 2003, которая имеет одну основную форму и две подчиненные формы из 3 разных таблиц. В основной форме есть поле со списком для идентификатора пациента и поле даты для даты регистрации. когда идентификатора пациента нет в списке a, срабатывает событие и появляется всплывающая форма, где я могу заполнить детали нового идентификатора и даты, и этот новый идентификатор создаст запись во всех 3 таблицах. Моя проблема в том, что после закрытия всплывающей формы в поле со списком отображается новый идентификатор данных, но подчиненная форма, которая относится к новому идентификатору, не обновляется и не отображает новый идентификатор. Мне нужно закрыть основную форму и снова открыть, а затем я могу выбрать новый идентификатор пациента, который также будет показан в подчиненной форме. Можно ли это запрограммировать так, чтобы мне не приходилось закрывать форму? Помощь будет оценена.

Ответ №1:

Вы можете вручную повторно заполнить все элементы управления из кода, выполнив следующее в коде VBA вашей формы:

 Me.Requery
  

Пока ваша форма открыта, вы можете получить доступ к форме через коллекцию AllForms. Итак, в вашей всплывающей форме вы можете просто написать в OnClose-событии следующий код

 Forms("NameOfYourMainForm").Requery
  

Комментарии:

1. Извините, Алаудо, я пробовал это, но показывает ошибку sub или функция не определена. и почему скобки после Requery()?

2. Это показывает ошибку компиляции или функция не определена. Частная подчиненная команда 6_click() При ошибке GoTo Err_Command6_Click ‘Формирует! MainForm!MaleTableSubform.Form.Запрашивает все формы (MainForm). Запрашиваем DoCmd. Закрыть Exit_Command6_Click: Ошибка Exit_command6_click: ошибка MsgBox.Описание Возобновить Exit_Command6_Click End Sub

3. я изменил все формы на Forms, и теперь при нажатии команды close он спрашивает меня, хочу ли я добавить данные, и при утвердительном ответе он закрывает основную форму, а после того, как я снова нажимаю кнопку close, он закрывает всплывающую форму.

4. Вы не забываете использовать кавычки при ссылке на свою форму? Не «Формы (основная форма)», а «Формы («Основная форма»)».

5. Привет, Алаудо, я сожалею, но все еще отказываюсь работать. у вас есть образец базы данных?