2015-08-26 42 views
0

我不完全確定如何通過谷歌或本網站搜索此問題,所以如果這是一個重複的問題,請讓我道歉。以訪問形式級聯組合框不顯示選擇後所有可用的選項

我有一個未綁定的訪問表單與4個級聯組合框,這是查詢的標準,反過來將創建一個表單等等。級聯的工作方式與我所期望的完全一樣,並且表單按照點擊按鈕時的形式生成。但是,我有一個問題,我在一個組合框中進行選擇,然後在單獨的組合框中進行更改,完整的值列表不再顯示在第一個組合框中。同樣的事情發生,如果我點擊組合框和退格在那裏的文字。
編輯
如果我做出Combobox1選擇,然後reclick到Combobox1只有我做出的選擇顯示,而不是整個列表。看起來我做了一些錯誤的做組合框,但不知道什麼屬性控制。

我正在使用AfterUpdate事件來重新查找使其級聯的框。所以它看起來像

Private Sub Combobox1 AfterUpdate() 
Me.Combobox2.Requery 
Me.Combobox3.Requery 
Me.Combobox4.Requery 

而代碼是重複在其他框中也會改變。我想要它,所以如果用戶改變主意或錯誤點擊,那麼他們可以選擇返回並修復它。

編輯

一個解決方法我都試過是在更新後事件的值設置爲空爲好。然而,我意識到如果我需要改變一個選擇,我不希望剩下的價值觀消失並重新選擇它們。

我也嘗試創建一個聯合查詢基於組合框的個人查詢過濾,Combobox1用於Query1等標準我得到它創建但聯合查詢仍然返回所有結果。

EDIT2

SELECT tblRawData.[Body No], tblRawData.Supplier, tblRawData.[Part Content], tblRawData.[Defect Desc], tblRawData.DateAdded, Left([tblRawData].[Body No],2) AS ModelCode, tblRawData.ThreePanelStatus, tblRawData.Location, tblRawData.Main, tblRawData.Responsibility2, tblRawData.Responsibility1, tblRawData.[Repair Job1], tblRawData.[Repair Job2], tblRawData.[Trim In Time], tblRawData.[S/OFF Date], tblRawData.[Repair Memo], tblRawData.Responsible, tblRawData.Note 
FROM tblRawData 
WHERE (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND ((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus])) OR (((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND ((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null)) OR (((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null)) OR (((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null)) OR (((tblRawData.ThreePanelStatus)=[Forms]![frmTest]![cboSelectThreePanelStatus]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND ((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR (((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND ((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR (((Left([tblRawData].[Body No],2))=[Forms]![frmTest]![cboChooseModelCode]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND ((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR (((tblRawData.Supplier)=[Forms]![frmTest]![cboChooseSupplier]) AND (([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR (((tblRawData.[Body No])=[Forms]![frmTest]![cboChooseBodyNo]) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)) OR ((([Forms]![frmTest]![cboChooseBodyNo]) Is Null) AND (([Forms]![frmTest]![cboChooseSupplier]) Is Null) AND (([Forms]![frmTest]![cboChooseModelCode]) Is Null) AND (([Forms]![frmTest]![cboSelectThreePanelStatus]) Is Null)); 

不知道如何得到這顯示出乾淨了一點,但有當前正在使用的SQL。

+0

你用什麼SQL來填充組合框?由於它們全都鏈接在一起,所以這可能是問題所在。 – jhTuppeny

+0

與jhTuppeny一致,問題聽起來像它可能在您的源代碼隊列中的組合框。您是否使用4個個人記錄資源?還是一個4?你可以顯示查詢嗎? – Gene

+0

我知道它可能不是最有效(或正確)的方式,但所有內容都基於一個查詢。查詢基於一個使用4個表格字段的表格。我相信SQL顯示了4個組合框可能具有的所有可能的組合。由於我自己沒有鍵入SQL,因此沒有進行驗證。我不知道如何使用SQL,這可能也是問題的一部分 –

回答

0

除了爲組合框提供AfterUpdate事件之外,我還添加了一個將要查詢的LostFocus事件。現在,當用戶回到已經有值的組合框並刪除它,然後單擊其他地方顯示所有需要的值。它可能不是全面的,但它現在可行。代碼如下。

注意:cboChooseBodyNo沒有AfterUpdate事件,因爲它是在以另一種形式顯示結果之前作出的最後選擇。不需要影響其他組合框中正在發生的事情。

Private Sub cboChooseModelCode_AfterUpdate() 
Me.cboChooseBodyNo.Requery 
Me.cboSelectThreePanelStatus.Requery 
End Sub 

Private Sub cboChooseModelCode_LostFocus() 
Me.Requery 
End Sub 

Private Sub cboChooseSupplier_AfterUpdate() 
Me.cboChooseBodyNo.Requery 
Me.cboSelectThreePanelStatus.Requery 
End Sub 

Private Sub cboChooseSupplier_LostFocus() 
Me.Requery 
End Sub 

Private Sub cboSelectThreePanelStatus_AfterUpdate() 
Me.cboChooseBodyNo.Requery 
Me.cboChooseSupplier.Requery 
Me.cboChooseModelCode.Requery 
End Sub 

Private Sub cboSelectThreePanelStatus_LostFocus() 
Me.Requery 
End Sub 
相關問題