2013-10-15 96 views
1

已經排除值這個數據庫的目的訪問組合框是分配「變量名」,以不同的「表」。我們正在採集我們的數據並製作有限的數據集,所以我使用Access來記錄過程。我有3個表:填充在DB

  • tbl_var - 包含所有變量信息
  • tbl_db - 包含有限的數據集的名稱和特性
  • tbl_vardb - ,其中一個表ID和可變ID相關聯
  • 的連接表

我創建了一個表格,選擇要添加到一個特定的數據集的變數。兩個下拉框非常簡單。一個框是數據集的名稱。另一個框是所有變量的名稱。問題是,如果我已經選擇「性別」作爲「演示」數據集的變量,我不希望「性別」作爲未來變量下拉值的選項彈出。畢竟,它已經在數據集中,沒有理由再次添加它。由於存在多個數據集,因此在查詢中對數據集名稱進行硬編碼對我來說並不適用。

我如何填充變量下拉與已經不是一個特定的數據集值?

回答

1

對於此表[tbl_var] ...

variableID variableName 
---------- ------------ 
     1 LastName  
     2 FirstName 
     3 Sex   

... [tbl_db] ...

datasetID datasetName 
--------- ----------- 
     1 Demo  
     2 SomeOther 

...和[tbl_vardb] ...

datasetID variableID 
--------- ---------- 
     1   3 

...如果我有一個名爲[cbxDataset]的組合框從[tbl_db]獲取它的項目,那麼我可以有另一個名爲[cbxVariable]的組合框,它的Row Source

SELECT variableID, variableName 
FROM tbl_var 
WHERE variableID NOT IN 
    (
     SELECT variableID 
     FROM tbl_vardb 
     WHERE datasetID=[cbxDataset] 
    ); 

After Update事件[cbxDataset]組合框的保證了其他組合框中包含了相關的選擇

Private Sub cbxDataset_AfterUpdate() 
Me.cbxVariable.Requery 
End Sub 
+0

現在我要去嘗試這種權利。非常感謝你的明確答案!我會跟進結果。 – Lauren

+0

如果我在[tbl_db]中將'[cbxDataset]'綁定到'Dataset_ID',我看不到名稱_and_綁定到'Dataset_ID'。所以,我正在使用一個查詢來獲取ID和名稱(獲取DS名稱)。我的表單來源是[tbl_vardb]。截至目前,我在[cbxVariable]組合框中看不到任何內容。我會嘗試解決這個問題。 – Lauren

+0

@Lauren re:ID與組合框中的名稱 - 另一個非常近期的問題[here](http://stackoverflow.com/q/19408623/2144390)可能會引起您的興趣。 –