2010-09-21 169 views
0

在訪問ADP的窗體中,有一個未綁定的組合框,顯示公司列表(顯示名稱,id是綁定字段)。選擇某個公司時,我想在該公司的子表單(該公司的數據源爲companySubscription視圖)中顯示該公司的訂閱信息。我設置鏈接主字段並將子窗體的子字段屬性鏈接到companyId。基本上,我設置它像this將子窗體鏈接到主窗體上的組合框的問題

理論上,我認爲這將意味着當我更改組合框中的值時,子窗體應顯示該公司的訂閱信息。它不工作 - 無論組合框設置了什麼,子窗體總是顯示companySubscription視圖中的所有數據。

幫助!

+0

不,它不是」 t切換 – dmr 2010-09-21 16:44:04

+0

您是否知道如何根據組合框中選擇的內容切換父窗體的當前記錄? – dmr 2010-09-21 16:48:39

+1

@Hansup鏈接主字段不一定是一個字段,它可以是一個控件,並且控件甚至可以保存直線文本。我經常使用它。 – Fionnuala 2010-09-21 16:57:24

回答

0

找到答案 - 不得不從其他項目,幫助一些代碼:(!感謝this後)

Private Sub cmbSub_AfterUpdate() 
    ' Find the record that matches the control. 
    Dim rs As Object 

    Set rs = Me.Recordset.Clone 
    rs.FindFirst "[subID] = " & str(Nz(Me![cmbSub], 0)) 
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark 
End Sub 

,不得不修改它的ADP

Private Sub ChooseCo_AfterUpdate() 
    ' Find the record that matches the control. 
    Dim rs As ADODB.Recordset 

    Set rs = Me.Recordset.Clone 
    rs.Find "[companyId] = " & Str(Nz(Me![ChooseCo], 0)) 
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark 
End Sub 
+0

這是您選擇創建查找組合框時由組合框嚮導生成的代碼。我不知道ADP版本,但第一個是現存最糟糕的自動生成的代碼之一。我把它撕成碎片在這篇文章中:http://stackoverflow.com/questions/3401645/how-do-i-bring-up-a-record-based-on-a-combobox-in-access/3418490#3418490 - 在那篇文章中,我發現「每行代碼創建的錯誤率至少爲2.5%」。我的批評是針對MDB/ACCDB中的代碼,但75%的批評也適用於ADP,這實在是糟糕的代碼。 – 2010-09-22 03:36:44