Access 中的查找值

Posted

技术标签:

【中文标题】Access 中的查找值【英文标题】:Lookup Value in Access 【发布时间】:2016-03-04 14:16:18 【问题描述】:

我正在尝试从一个表中查找字段,以更新另一个表中的值。我知道这可以通过查询轻松完成,但是有没有办法在表中做到这一点?

基本上,我要做的只是一个 Excel VLOOKUP,但在 Access 中。如果我更改目标表中的查找值,返回的值将被更新。

【问题讨论】:

【参考方案1】:

您需要连接查询中的表,然后根据连接字段将一个表中的字段值设置为第二个表中的字段(希望有意义)。

例如,如果您有:Table1KeyField1DescriptionField1Table2KeyField2DescriptionField2

如果你想用DescriptionField2 中的值更新DescriptionField1 其中 KeyField 值匹配你使用这个SQL:

UPDATE Table1 INNER JOIN Table2 ON Table1.KeyField1 = Table2.KeyField2
SET Table1.DescriptionField1 = Table2.DescriptionField2

另一种方法是使用查找字段 - 在 Data Type 中选择 Lookup Wizard。 如果采取这条路线,我会建议 Access 表的十诫 :)

您绝不应允许您的用户直接查看或编辑表格,但 只有通过表格,你才会讨厌使用“查找字段” 这艺术是邪恶者的创造。 http://access.mvps.org/access/tencommandments.htm

【讨论】:

我按照您建议的第一种方式进行了操作,但是我需要在 Table1 中显示该字段。因此,我应该通过查找向导来执行此操作吗? 没关系,我没有意识到该字段已正确更新为我想要的值。现在,我的最后一个问题如下:假设我更改了源表中的 4 个值,然后当我运行查询以链接两个表时,有时并非所有值都被更新。你知道这是否有原因吗? 听起来您想使用查找向导。我在过去发现了这个问题 - 表仍然保存原始值,而不是查找的值(它只是显示)所以如果你复制到 Excel,你会得到原始值和任何基于该值的查询表必须使用原始值 - 查找值只是为了查看并导致混淆字段中的实际值。 这些值是否完全符合预期?如果您使用日期,则可能包括但不显示时间。因此,如果您正在搜索 3 月 4 日,但该字段包含 3 月 4 日 15:00:00,您将找不到匹配项。 是的,这些值的显示完全符合预期。我注意到,如果我在运行查询之前关闭要更新的表,则更新将完美运行。所以我想这可能是这里的问题。

以上是关于Access 中的查找值的主要内容,如果未能解决你的问题,请参考以下文章

更新 Access 中的多值字段

access中的日期比较

在 MS Access 中查找和删除重复值

在 Access 中对联接的查找值进行分组 [重复]

ms-Access 不使用组合框显示值作为查找值

Microsoft Access 在具有已知值的表中查找字段