2012-08-09 2 views
0

이 코드는 합계를 계산 한 다음 그 합계의 백분율을 계산 한 다음 텍스트 상자에 백분율을 표시하기위한 것입니다. 이 코드는 폼의 단추를 클릭 할 때 실행되지만 해당 폼의 하위 폼을 기반으로하는 데이터를 사용하고 표시해야하는 텍스트 상자는 폼에 있습니다. 폼과 하위 폼 모두 클래스 목록에서 호출되므로 "Object Required"오류가 발생하는 이유에 대해 혼란 스럽습니다. 오류가 발생MS Access : Object 필요한 오류

Private Sub cmdTest_Click() 
'Initialisation 
Dim TotalAmount As Integer 
Dim GiftAid As Integer 
'Processing 
    If AllForms!frmGiftAid!subfrmqryGiftAid!PaymentIncrement Is Not Null Then 
     If AllForms!frmGiftAid!subfrmqryGiftAid!PaymentIncrement = "Monthly" Then 
      TotalAmount = _ 
      (AllForms!frmGiftAid!subfrmqryGiftAid!PaymentAmountPerIncrement * 12) 
     Else 
      TotalAmount = _ 
      AllForms!frmGiftAid!subfrmqryGiftAid!PaymentAmountPerIncrement 
     End If 
    End If 

    'Termination 
    GiftAid = (TotalAmount * 0.25) 
    AllForms!frmGiftAid!subfrmqryGiftAid!subfrmqryGiftAidtxtGiftAid = GiftAid 
End Sub 

선은 하위 폼을 참조하는 첫 번째, 그래서는 다음과 같습니다!!!

AllForms하면 frmGiftAid subfrmqryGiftAid PaymentIncrement가 그럼 난 해봤

null가 아닌 "AllForms"대신 "Forms"를 사용하여 하위 폼을 참조하는 하위 폼을 참조하기 위해 다양한 변형 된 코드를 사용하고 폼이 아닌 하위 폼에서이를 시도하고 On_Current () 또는 On_Load(),하지만 지금까지 아무것도 나를 위해 일한 적이있다.

저에게 제공 할 수있는 도움이 있으면 크게 감사하겠습니다.

답변

0

폼의 코드 모듈에서 Me로 시작하는 하위 폼 또는 폼과 폼의 이름을 참조하십시오. 그런 다음 하위 폼 컨트롤의 이름 인 Form을 포함 된 개체와 마지막으로 포함 된 폼의 속성을 참조하십시오.

Forms!frmGiftAid!subfrmqryGiftAid.Form!PaymentIncrement 

또는

는 하위 폼 컨트롤의 이름을 사용하는 것이 중요하다는 것을
Me.subfrmqryGiftAid.Form.PaymentIncrement 

참고하지 양식의 이름이 포함되어 있습니다.

이 코드는 상위 폼에서 실행되며 하위 폼에서 레코드를 선택해야합니다.

If Not IsNull(Me.subfrmqryGiftAid.Form.PaymentIncrement) Then 
    If Me.subfrmqryGiftAid.Form.PaymentIncrement = "Monthly" Then 
     TotalAmount = _ 
     Me.subfrmqryGiftAid.Form.PaymentAmountPerIncrement * 12) 
    Else 
     TotalAmount = _ 
     Me.subfrmqryGiftAid.Form.PaymentAmountPerIncrement 
    End If 
End If 
+0

첫 번째는 다시 동일한 "필수 객체"오류 –

+0

그리고 두 번째 "당신의 표현에 언급 된"양식 "Microsoft Access에서 필드를 찾을 수 없습니다"런타임 오류가 온다 온다 코드를 실행하고 있습니까? 부모 형태? 하위 폼? –

+0

와 2465 – Fionnuala