MS访问03 – muliplte“ifs”在更新查询条件的一个字段?

我可以运行更新查询,并在一个字段中运行多个更新,如:

“joe doe”更新为334,“barry davis”更新为456等

基本上我想把这个名字转换成数字(在我的情况下,这个数字就是员工ID号),而且我有大约500名员工,所以一次只能有一个是不可能的。 该表是从Excel导入,我不知道如何做这个前导入ethier!

谢谢你的帮助!

虽然可以在Access中使用多个Iif语句,但您可能希望使用Access中的更新查询来执行此操作。

没有你的数据源的更多细节是很难确定的 – 我在这里假设你已经有一个表在你的Access列表中的用户名到他们的ID(我打电话给用户)。 如果您还没有列出用户名和ID的Access表,则需要获取一个。

我还假设你已经将你想从Excel更新的数据导入到名为ExcelImport的表中。

显然,你需要用我的例子中使用的表名replace实际的表名。

而不是在Excel数据中replace用户名,在ExcelImport上添加一个新列以保存用户标识可能更为明智。

  1. 创build一个新的查询(“在devise视图中创build一个新的查询”)

  2. 将用户和ExcelImport表添加到您的查询

  3. 通过在用户表上的“用户名”字段之间单击并拖动,然后在ExcelImport上的“用户名”字段上释放,在表之间创build链接。 这将这两个表连接在一起。

  4. 将查询的types更改为更新(查询>更新查询)

  5. 双击ExcelImport用户名字段(或其他用户标识字段,如果您使用的话),将其作为更新的目标。 它应该出现在查询devise器的下半部分的第一列中。

  6. 在此列的“更新到:”字段中,键入[Users]。[UserID]

  7. 运行查询。 应出现一个消息框,要求您确认是否要更新n行。 点击OK确认。

考虑到您的数据来自Excel,您应该检查所有的用户ID是否已被正确设置,因为Excel数据中的“Joe Doe”有可能在用户表中存储为“Joseph Doe” – 在这种情况下,您将需要手动编辑Excel数据以获得匹配。

我有大约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个案例会产生一个错误,“查询expression式中的expression式太复杂”。 所以我不认为你会接近500箱!

最好让这个查询表。