2015-05-21 38 views
0

我有一個基於表(tblMain)的分割形式。表單顯示了許多列,其中一些是文本框,另一些是組合框。除了兩列以外,我可以輕鬆地對錶格的數據表部分中的每一列進行排序和篩選。以分割形式呈現爲組合框的列

這兩列是具有相同的控制源和相同的行源表但是具有以下區別組合框:

cboPUNUM: 
control source tblMain.[PU_ID]; 
row source SELECT tblPU.[PU_ID], tblPU.PUNUM FROM tblPU; 

cboPUTYPE: 
control source tblMain.[PU_ID]; 
row source SELECT tblPU.[PU_ID], tblPU.PUTYPE FROM tblPU; 

表tblPU具有以下結構:

PU_ID PUNUM PUTYPE 
1  11234 SMC 
2  21234 DPL 
3  11234 NEC 
4  21123 SMC 
and so on... 

的想法是在分割形式中爲PUNUM和PUTYPE設置兩個單獨的列,並能夠對它們進行過濾。

在分割形式顯示兩個列,用於在列的頂部的下拉列表的過濾在複選框所有可用值,直到所施加的濾波器:

enter image description here

的問題是,我可以過濾只有其中一列(見下圖)。例如,如果我在PUNUM字段中選擇84174,那麼我失去了過濾PUTYPE字段的能力。理想情況下,PUTYPE應該給我一個選項來檢查FHP或ADH,但複選框不會出現在下拉列表中。

enter image description here

,反之亦然,如果我從過濾PUTYPE,即我選擇FHP並期望PUNUM有許多選項啓動,但它並沒有顯示過濾複選框(見下文)。

enter image description here

請指教一下我這個做的,因爲我沒有想法......?

P.S. DLookup函數而不是組合框不允許過濾列。

我知道我可以基於查詢的形式並在該查詢中保存DLookup表達式,但會顯着降低性能。

+0

首先,您將兩個表單控件綁定到同一個表字段,這會強制兩個控件始終攜帶相同的值。考慮重新設計。其次,請更好地說明您的情況或提供截圖或其他內容,因爲很難理解您要做什麼:「在下拉列表中顯示所有可用的值在複選框中過濾」??? – Parfait

+0

謝謝,Parfait,我添加了一些圖片來說明我的問題。是的,我意識到兩個控件都綁定到同一個源,並且主鍵對於特定的記錄而言總是相同的。但是我將過濾器應用於有很多記錄的整個數據庫。例如,PUNUM 84174在源表中寫入兩個PK(PU_ID):32和63.其中一個具有PUTYPE FHP,另一個具有AHD。也許結構不理想,但它是什麼。因此,當我在過濾器下拉列表中選擇84174時,它顯示PU_ID爲32和63的記錄。那麼PUTYPE不應該顯示相同嗎? –

回答

0

好吧,看來我要仔細考慮這個問題......

我只是改變了查詢分割形式,其中包括tblPU與這兩個領域。然後將表單控件轉換爲文本框並直接將它們發送到該字段。按我的意願工作。