如何使用SQL查询从另一个表更新作为下拉列表的字段

时间:2017-10-16 21:59:27

标签: sql ms-access

嗨,我的访问数据库中有两个表格,标有'联系人''StatusList'

StatusList 由一列和四行标记为:

状态说明
可疑
前景
询问
申请人

通讯录包含以下内容:

首先发送电子邮件状态电话

“联系人”中的“状态”字段是一个下拉框,用于关闭StatusList表。 Contacts表中的每一行最初都设置为Suspect。

“通讯录”中的电子邮件字段设置为仅允许唯一的电子邮件。

我有一个标有ExcelImport的表,其字段与Contacts表相同。

最后,我想将ExcelImport表中的数据插入到Contacts中。如果ExcelImport和Contacts之间存在电子邮件匹配,我希望Status字段的Contacts中的行从Suspect更新为Prospect。

到目前为止,我有这个:

SELECT Contacts.contactEmail
FROM Contacts
Inner Join ExcelImport on Contacts.contactEmail = ExcelImport.contactEmail;

我知道这只会向我显示匹配的电子邮件。是否有任何方法可以更新与Prospect匹配的特定行的状态列表?

1 个答案:

答案 0 :(得分:1)

如上所述,只需使用UPDATE操作查询更改值,下拉列表就会相应更改。如果我理解你的下拉菜单只是一个你可能在表设计中设置的查找服务器框。它只是帮助控制输入的值。 UPDATE查询会将该下拉列表更改为表格的值:

UPDATE Contacts INNER JOIN ExcelImport 
    ON Contacts.contactEmail = ExcelImport.contactEmail
SET Contacts.[Status] = 'Prospect';

此外,您提到我想将ExcelImport表中的数据插入到Contacts ,您可以通过运行{来保留电子邮件字段的唯一性{1}} 追加查询中的子句。

NOT EXISTS

因此,请运行两个操作查询以导入唯一的电子邮件,并重复电子邮件,更新状态