2014-01-28 2 views
0

나는 탭 컨트롤에서 여러 하위 폼을 사용하여 MS Access 2010에서 양식을 만들었습니다. 일부 하위 양식에는 PopUp 양식을 여는 OnClick 매크로가있는 TextField가 있습니다. "OK"-Button을 클릭하면 someFn()을 사용하여 값을 계산하고 Main Form에서 현재 Tab을 가져 와서 해당 SubForm의 TextField에 값을 씁니다.MS Access VBA 런타임 오류 459

이 팝업 형태의 "OK"- 버튼에 대한 코드입니다 : 내가 01_subform (탭 0)에 txt_field을 클릭하지만 왜 오류가 발생 않으면

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 

소위원회 실행 완벽하게 정상적으로 04_subform (탭 3)에?

편집 : 나는 오류를 언급하지만 문제 해결 방법으로 문제를 해결할 수없는 수있는이 마이크로 소프트 기사를 발견했습니다 : 나는 2014년 1월 26일 및 업데이트에 01_subform을 만든 것처럼 http://support.microsoft.com/kb/2748410

내가 04_subform을 만들기 전에 2014/01/27에 설치되었습니다. 이것이 실제로 이유가 될 수 있지만 어떻게 수정합니까?

+0

아직 완료하지 않은 경우 철저한 [디 컴파일] (http://stackoverflow.com/a/3268188/2144390)을 시도하고 Access 데이터베이스를 다시 컴파일 할 수 있습니다. –

+0

아직 해본 적이 없지만 DB를 다시 컴파일 한 후에 런타임 오류 '-2146500594 (800f000e)'가 나타납니다 : '_SubForm'객체의 'Form'메서드가 실패했습니다. 다시 04_subform 만 수행했습니다. –

답변

0

데이터베이스를 다시 컴파일 한 후 다른 오류가 발생했습니다. 새 양식을 만들고 모든 컨트롤과 VBA 코드를 복사 한 다음 하위 폼의 이름을 바꾸고 모두 바꿨습니다. 이제는 모든 것이 올바르게 작동합니다.