2013-10-15 62 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)可能会引起您的兴趣。 –