2012-08-09 79 views
0

該代碼只是爲了找出一個總,然後將該總的百分比,然後在一個文本框顯示的百分比量。這個代碼被點擊窗體上的一個按鈕時運行,但它使用基於在該表格上子窗體數據,並且它應該顯示給文本框是在窗體上。窗體和子窗體都在類列表中調用,所以它讓我很困惑,爲什麼它會出現「Object Required」錯誤。MS訪問:所需的對象錯誤

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不爲空,然後

我試着使用的代碼的不同變化以引用子窗體(只是引用窗體,使用的而不是「AllForms」「表單」)以及在子窗體本身而不是形式嘗試它和不同的事件,諸如On_Current這樣做( )或On_Load(),但到目前爲止沒有任何工作。

,你可以給我任何幫助將不勝感激。

回答

0

參考窗體從形式或形式的代碼模塊,其次是表單的名稱開始或者與我。然後,您可以使用子窗體控件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

第一個出現運行時錯誤2465「Microsoft Access不能找到域‘表 – 2012-08-09 12:30:10

+0

,第二個’你的表情簡稱」回來與相同的「必選對象」錯誤 – 2012-08-09 12:32:21

+0

凡你在運行你的代碼嗎?父母的形式?子表單? – Fionnuala 2012-08-09 12:45:18