Я создал форму в MS Access 2010, используя несколько подчиненных элементов в элементе управления с вкладками. Некоторые из подформ содержат TextField с макросом OnClick, открывающим форму PopUp. Когда вы нажимаете кнопку «ОК», он вычисляет значение с помощью someFn(), получает текущую вкладку из Основной формы и записывает значение в TextField в соответствующей SubForm.MS Access VBA Runtime Error 459
Это код для «OK» -Кнопка в PopUp форме:
Private Sub btn_ok_Click()
Dim page As Integer
page = Forms![00_data].Form.tabbed.Value
Dim Val As Integer
Val = someFn 'returns some Value between -1 and 100
DoCmd.Close acForm, "10_my_popup_form", acSaveNo
If Val >= 0 Then '0-100 are valid
Select Case page
Case 0
Forms![00_main]![01_subform].Form.txt_field.Value = Val
Case 3
Forms![00_main]![04_subform].Form.txt_field.Value = Val 'Error 459
End Select
ElseIf Val = -1 Then '-1 is an error code, delete the Value
Select Case page
Case 0
Forms![00_main]![01_subform].Form.txt_field.Value = Null
Case 3
Forms![00_main]![04_subform].Form.txt_field.Value = Null 'Error 459
End Select
End If
End Sub
ВТОРОСТЕПЕННОЕ работает прекрасно, если я нажимаю на txt_field 01_subform (Tab 0), но почему он выдаст ошибку на 04_subform (вкладка 3)?
EDIT: Я нашел статью, в которой майкрософт упоминает ошибку, но ни один из решения проблем подходов не может решить эту проблему: http://support.microsoft.com/kb/2748410
Как я создал 01_subform на 2014/01/26 и обновления был установлен в 2014/01/27, прежде чем я создал 04_subform, на самом деле это может быть причиной, но как это исправить?
Если вы еще этого не сделали, вы можете попробовать тщательный [декомпилировать] (http://stackoverflow.com/a/3268188/2144390) и перекомпилировать базу данных Access. –
Я этого еще не сделал, но после перекомпиляции БД я получаю ошибку Runtime «-2146500594 (800f000e)»: метод «Форма» объекта «_SubForm» не удался, только для 04_subform снова –