下拉列表验证基于SQL中的另一个字段的值

时间:2014-08-05 05:58:12

标签: sql ms-access ms-access-2010

我目前有以下4个表格:

联系人

Contact_ID,
ContactName

角色

Role_ID,
Role

联络角色

ContactRole_ID,
Contact_ID,
Role_ID

活动 - 通讯录

EventContact_ID
Contact_ID
ContactRole_ID

我的最终目标是根据ContactRole_ID字段中选择的值限制事件 - 联系人表的Contact_ID字段中可以选择的值,以便只有与联系人关联的角色才会显示为选项。有没有办法使用SQL?

如果需要任何其他信息或说明,请告知我们。提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

是的,我们可以使用带有Contact Roles表和Events_Contacts表的内部联接来完成此操作。基于两个表中都有的Contact_ID列。

SELECT  EC.[EventContact_ID],EC.[Contact_ID],EC.[CotactRole_ID] 
FROM Contact_Roles CR INNER JOIN Events_Contacts EC ON
CR.Contact_ID=EC.Contact_ID

如果我是对的,为了创建ms访问表单过滤器下拉,你试图这样做? 如果没有,请oops ..如果您想在ms访问中根据此要求了解更多信息,请与我们联系。我会指导你。

答案 1 :(得分:0)

由另一个控件值过滤的下拉列表的记录源应如下所示。 "另一个控件"也可以是文本框或下拉列表。

SELECT Field1, Field2, ...etc
FROM table1 (JOIN more tables here if you want)
WHERE Field3 = Forms!Form_Name.Controls!Control1_Name
AND Field4 = Forms!Form_Name.Controls!Control2_Name(.value if required)
...
etc

或者您可以将其另存为查询并在需要的地方使用。阅读 this article它会对您有所帮助。此访问功能非常有用。