2016-12-30 76 views
0

我發現了很多關於如何從父窗體過濾子窗體的教程和問題以及答案,但是我無法找到一種方法來使用位於完全不同子窗體的組合框過濾子窗體?如何過濾來自另一個子窗體訪問中的組合框的子窗體?

Private Sub Combo51_AfterUpdate() 
     Me.Parent!Address.Form.Filter!Address2.Value = Combo51.Value 
End Sub 

我得到了所需的對象錯誤

地址2連接到我的地址表單 Combo51 companyID(控制源)持有該公司ID值

Combo51位於子窗體CompanyInformation和地址2位於子窗體地址

companyinformation窗體是父窗體的子窗體被調用的行情。所以引用是我的主要形式,有兩個子表單CompanyInformation和Address。母公司形式的Id形式與CompanyInformation相關聯;現在我想通過使用combobox51中的companyID從公司信息過濾到地址表單。

我有成功更新從子窗體到子窗體的文本和組合框,但我只是不太明白過濾方法。任何幫助,將不勝感激。

我使用備案源地址形式

+2

你能否介紹一下你的表單設計和表格結構的一些細節?您可能需要沿着'Me.Parent!Address.Form.Filter =「companyID =」&Combo51'的路線行事,儘管從您的有限說明中可以看出,您可能根本不需要子窗體 - 您是否顯示多個地址/公司信息單個公司的記錄? – Skippy

+0

我試過上面的代碼沒有錯誤,但它沒有工作。我爲每個公司顯示多個地址。也有多個公司的多個報價。我需要能夠瀏覽所有公司的所有不同地址以及那裏的報價。因此,我將顯示單個公司的多個地址/公司信息記錄。 – ZacAttack

+0

對不起,仍然無法理解您的數據結構。請提供表格和關係,以使其更清楚並允許其他人提供幫助。當你談論「多個公司的多個地址」和「多家公司的多個報價」時,這些都是多對多的關係嗎?一家公司可以擁有多個地址嗎?一個地址可以與多個公司相關嗎?一個報價可以涉及多家公司?一家公司能得到多個報價嗎?我猜測這些問題的答案並不全是「是」! – Skippy

回答

1

我對你的設計很感興趣。我必須說,在行情和公司之間建立多對多關係是不尋常的,但如果這就是你需要的,那就去吧! [編輯:剛剛閱讀你的最新評論,我可以看到你爲什麼現在這樣做。]但我擔心tblCAFQ中的「3個主鍵」。我將其解釋爲由三列AddressID,CompanyID和AddressTypeID組成的「複合主鍵」,在這種情況下,我希望這三個ID也是其他表的外鍵。您已經確定CompanyID和AddressTypeID確實是外鍵,分別指向tblCompanyNames和tblAddressType,但您沒有說明AddressID指向的位置。我懷疑AddressID實際上是主鍵,其他兩個ID應該只是外鍵。無論如何,這一邊,從你的信息至今貼,我認爲你需要的是

Private Sub Combo51_AfterUpdate() 
    Me.Parent!Address.Form.Filter = "CompanyID = " & Combo51 
    Me.Parent!Address.Form.FilterOn = True 
    Me.Parent!Address.Form.Requery 'You might not need this, I can't remember if it happens automatically after setting FilterOn = True 
End Sub 

這是假設Combo51的綁定列在CompanyInformation拿起CompanyID(從tblCustomerNamesFromQuotes)子窗體?

+0

我仍然無法使用它,我已完成訪問!感謝您的幫助,但它是一個接一個的路障。它做了一些不錯的事情,但男人!哦,就我的許多人來說,引用和客戶並不確定我是否會使用它,但邏輯是這樣的。我們工廠的工業繪畫。有時候我們會爲一家外包工作的公司引用一個項目給我們。因此,A公司得到一份工作,從B公司建造一些東西。A公司完成它,然後讓我們畫它。這個報價是針對A公司的,但是最後知道它最終會結束一個B – ZacAttack

+0

很抱歉聽到這個消息。我知道Access有時候會有些古怪,但是您必須記住它主要是一個關係數據庫系統(內置了表單和報表設計器),因此您確實需要讓您的數據模型適合於使您的表單設計更容易。丟失多對多報價 - 客戶關係的一種可能方法是使用tblProject來描述項目並記錄最終客戶是誰(B)。每個項目都可以有許多行情;對每一個報價你記錄你直接工作的人(A)。然後是QuoteDetails表格,每個部分一個。 – Skippy

+0

我認爲我最大的問題是我的數據模型,我目前正在嘗試重做它,使我更有意義,我剛剛跳入數據庫頭。我想我會用tblProject去看起來更合乎邏輯。我決定重建我的訪問數據庫,並希望通過更好的設計消除這些問題 – ZacAttack

0

嘗試也查詢轉FilterOn:

Private Sub Combo51_AfterUpdate() 
     Me.Parent!Address.Form.Filter = "Address2 = '" & Me!Combo51.Value & "'" 
     Me.Parent!Address.Form.FilterOn = True 
End Sub 
+0

我試過了上面的代碼,但是輸入了一個值作爲篩選器的窗口 – ZacAttack

+0

然後你可能沒有一個名爲Address2的字段。 – Gustav

相關問題