2013-06-18 53 views
0

我有以下兩個表,第一被叫項目和第二被叫零件:在MS Access中爲子窗體中的下拉框查找創建SQL查詢?

enter image description here

enter image description here

然後我有一個表格(讓稱之爲形式1),其使用的項目作爲其記錄源,其中包含將項目表上的項目鏈接到部件表上的項目並僅顯示與所選項目記錄源關聯的項目的子表單,如下所示:

enter image description here

現在,我想能夠做的是在窗體1上只有子窗體中列出的項目可選擇下拉列表,但我似乎無法找到SQL代碼來執行此操作。

我現在的下拉使用下面的代碼,當然,這只是顯示了所有項目,不僅是那些子窗體:

SELECT [Parts].[ID], [Parts].[Item] FROM Parts ORDER BY [Item]; 

我想做什麼會是這樣,我認爲,但很明顯,使用正確的語法:

SELECT [Parts].[ID], [Parts].[Item] WHERE [Parts].[ID]= & Me![ID] FROM Parts ORDER BY [Item]; 

回答

1

把這個窗體的Load事件:

Me!MyCombo.RowSource = "SELECT [Parts].[ID], [Parts].[Item] FROM Parts WHERE [Parts].[ID]= '" & Me![ID] & "' ORDER BY [Item];" 
Me!MyCombo.Refresh 

如果Parts.ID是數字字段,則需要將其單引號引出,如果它是文本字段,則將它們留在其中。

1

使用窗體的「當前」事件來設置組合的行來源屬性,所以無論您的窗體中的活動行何時更改,您都會獲得組合中的更新列表。

Me!MyCombo.RowSource = "SELECT Project, Item FROM Parts WHERE Project = '" & Me.Project & "' ORDER BY Item" 

對不起,user2174085:這應該是一個評論對你回答,但我沒有做用評論的選項。