2013-10-08 25 views
0

我一直在嘗試瞭解如何引用來自不同模塊的子表單控件。許多論壇指出以下鏈接: http://access.mvps.org/access/forms/frm0031.htm從不同模塊的子表單中引用控件

我還沒有成功添加到我的代碼呢。不知道我錯過了。

從第一形式中,當用戶點擊命令按鈕下面的代碼運行:

Private Sub Command3_Click() 
     policyid = Me.PolicyList 
     Call openpolicy(policyid) 
    End Sub 

從模塊1:

Public Sub openpolicy(policyid) 
    DoCmd.OpenForm ("frmPolicyDetails") 

    Dim dbs As DAO.Database 
    Dim rcd As DAO.Recordset 

    Set dbs = CurrentDb 
    Set rcd = dbs.OpenRecordset("Select * from Policy Inner join client on client.clientid = policy.clientid where Policy.id = " & policyid) 

    Forms!Frmpolicydetails.selectedpolicy = rcd("PolicyNumber") 
    Forms!Frmpolicydetails.selectedName = rcd("FirstName") & " " & rcd("LastName") 

    'Trying to update subform textbox 
    Forms!frmpolicydetails!frmpolicyInfo.policynumber = rcd("PolicyNumber") 

End Sub 

「FrmPolicyInfo」是「目標名」導航形式指向 「PolicyNumber」是子窗體上控件的名稱

任何想法?

+1

請幫助我們瞭解*「沒有成功」*的含義。是否有錯誤訊息?如果是這樣,請告訴我們該消息的全文,並指出哪一行觸發它。如果沒有錯誤,請描述代碼如何不能做你想做的事情。 – HansUp

回答

1

我會給你一個幫助我解決這個問題的小技巧。您需要引用SubformControl(包含子窗體的框),然後引用其中包含的窗體,最後引用該控件。

Forms!MainFormName!SubformControlName.Form!txtControlName 

所以你的情況可能是這樣的:

Forms!frmpolicydetails!SubformControl1.Form!policynumber = rcd("PolicyNumber") 

這裏混亂的部分是,你不想改變「.FORM!」成爲你的表單名稱。當您引用子窗體控件的窗體對象時,您始終將其稱爲窗體,而不是窗體的名稱。

+0

你不應該在那裏需要'Form':'Forms!MainFormName!SubformControlName!txtControlName' – HansUp

+0

謝謝你的提示。我不知道你可以刪除'.Form'部分。 – HK1