У меня есть форма frm_New_Datasheet
для ввода таблиц добровольцев в базу данных, которую я создаю.Для текстового поля идентификатора добровольца txt_Vol_ID
У меня есть две кнопки для поиска существующего добровольца или добавления нового, каждая из которых открывает соответствующую форму.Я хочу, чтобы Vol_ID
из frm_Volunteers
возвращалось в frm_New_Datasheet
после добавления нового добровольца.
Для этого я добавил следующий код в форму добровольца:
Private Sub Form_AfterInsert()
If Not IsNull(Me.vol_Vol_ID) Then
Dim volVal As Double
volVal = Me.vol_Vol_ID
Forms!frm_New_Datasheet!txt_Vol_ID.Value = volVal
End If
End Sub
И это сработало отлично.Затем я попытался создать форму «Поиск добровольцев», добавил к ней один и тот же код, но теперь я получаю следующую ошибку:
Ошибка времени выполнения -2146500594 (800f000e):
Метод 'Item' объекта 'Forms' не выполнен
Отладчик выделяет строку, в которой я установил .Value = volVal
, поэтому я искал другие способы вызвать это текстовое поле, но пока не получилось,Я пробовал
Forms([frm_New_Datasheet]).[txt_Vol_ID] = volVal`
, но это дает мне другую ошибку:
Ошибка времени выполнения '2465':
Microsoft Access не может найти поле '| 1 'упоминается в вашем выражении
Я довольно растерялся из-за этого, потому что я думаю, что правильно вызываю текстовое поле другой формы, и когда я ищу первую ошибку времени выполнения,Лучший совет, который я нашел, - «Иногда VBA глючит и пытается перезапустить», но это не помогло.Пока что это лучшая идея, которую мне приходилось передавать значение из одной формы в другую.Если есть другое место, я могу оставить этот код или еще один способ снять шкуру с этого кота, у меня все уши.
Спасибо!