我可以运行更新查询,并在一个字段中运行多个更新,例如:
“joe doe”更新至334& “barry davis”更新为456等
基本上我想将名称转换为数字(在我的情况下,它将是员工ID#),我有大约500名员工,所以一次只有一个是不可能的。该表是从excel导入的,我不知道如何做这个导入前的ethier!
感谢您的帮助!
答案 0 :(得分:3)
虽然可以在Access中使用多个Iif
语句,但您可能希望使用Access中的更新查询来执行此操作。
如果没有更详细的数据源,很难确定 - 我假设您已经在Access中列出了一个表,其中列出了用户名到ID(我称之为用户)。如果您还没有列出用户名和ID的Access表,则需要获取一个。
我还假设您已将要更新的数据从Excel导入到名为ExcelImport的表中。
显然,您需要将我的示例中使用的表名替换为您的实际表名。
不是替换Excel数据中的用户名,而是在ExcelImport上添加新列以保存用户ID可能更明智。
创建新查询(“在设计视图中创建新查询”)
将Users和ExcelImport表添加到您的查询
通过在Users表上的“用户名”字段之间单击并拖动,然后通过ExcelImport上的“用户名”字段进行释放,在表之间创建链接。这会将这两个表链接在一起。
将查询类型更改为更新(查询>更新查询)
双击ExcelImport用户名字段(或其他用户ID字段,如果您正在使用它)以将其定位以进行更新。它应该出现在查询设计器的下半部分的第一列中。
在此列的“更新至:”字段中,键入[用户]。[用户ID]
运行查询。将出现一个消息框,要求您确认是否要更新 n 行。单击“确定”进行确认。
鉴于您的数据来自Excel,您应该检查所有用户ID是否已正确设置,因为Excel数据中的“Joe Doe”可能会在users表中存储为“Joseph Doe” - 其中例如,您需要手动编辑Excel数据才能获得匹配。
答案 1 :(得分:1)
我有大约500名员工,所以一个人 时间有点不可能
绝对:)
使用标准问题的唯一INTEGER
值序列表来考虑这一点:
SELECT SWITCH(
seq = 1, 1,
seq = 2, 2,
seq = 3, 3,
seq = 4, 4,
seq = 5, 5,
seq = 6, 6,
seq = 7, 7,
seq = 8, 8,
seq = 9, 9,
seq = 10, 10,
seq = 11, 11,
seq = 12, 12,
seq = 13, 13,
TRUE, 999
) AS seq_1
FROM Sequence;
超过14个案例会产生错误,“表达式在查询表达式中过于复杂”。所以我认为你不会接近500个案件!
最好将其设为查找表。