MS Access 03 - 更新查询条件的一个字段中有多个“ifs”?
Posted
技术标签:
【中文标题】MS Access 03 - 更新查询条件的一个字段中有多个“ifs”?【英文标题】:MS Access 03 - muliplte "ifs" in one field of update query's criteria? 【发布时间】:2009-07-21 23:50:57 【问题描述】:我可以运行更新查询并在一个字段中运行多个更新,例如:
“joe doe”更新为 334,“barry davis”更新为 456,等等
基本上我想将名称转换为数字(在我的情况下,它将是员工 ID#),而且我有大约 500 名员工,所以一次一个人有点不可能。该表是从 excel 导入的,我不知道如何执行此预导入 ethier!
感谢您的帮助!
【问题讨论】:
+1 表示 Ed Harper 的说明,我将进一步评论说,您有一个很酷的机会可能会看到更多数据库的优点以及 Excel-as-a-Database 无法提供的原因. 如果您想获得在 Excel 中分配的数字并且您确实有 ID(您似乎必须这样做),那么 VLookup 可能是一个典型的解决方案。但不要那样,使用 Access。我会将此作为“答案”,但您可能会这样做! 鉴于您在下面我的回答中的 cmets,您的问题比您已经发布的要复杂一些。请您编辑您的问题以在 Access 中添加 UserID 表和 Schedule 表结构的详细信息吗? 请同时添加一些示例输入和预期输出 【参考方案1】:虽然可以在 Access 中使用多个 Iif
语句,但您可能希望改用 Access 中的更新查询来执行此操作。
如果没有您的数据源的更多详细信息,很难确定 - 我在这里假设您的 Access 中已经有一个表,其中列出了用户名到他们的 ID(我称之为用户)。如果您还没有列出用户名和 ID 的 Access 表,则需要获得一个。
我还假设您已将要更新的数据从 Excel 导入到名为 ExcelImport 的表中。
显然,您需要将我的示例中使用的表名替换为您的实际表名。
与其替换 Excel 数据中的用户名,不如在 ExcelImport 上添加一个新列来保存用户 ID。
创建新查询(“在设计视图中创建新查询”)
将 Users 和 ExcelImport 表添加到您的查询中
通过在“用户”表上的“用户名”字段之间单击并拖动,然后在 ExcelImport 上的“用户名”字段上释放,创建表之间的链接。这会将两个表在该字段上链接在一起。
将查询类型更改为更新(查询>更新查询)
双击 ExcelImport 用户名字段(或其他用户 ID 字段,如果您正在使用它)以将其作为更新目标。它应该出现在查询设计器下半部分的第一列中。
在此列的“更新至:”字段中,输入 [Users].[UserID]
运行查询。应该会出现一个消息框,要求您确认是否要更新 n 行。点击确定确认。
鉴于您的数据来自 Excel,您应该检查所有用户 ID 是否已正确设置,因为 Excel 数据中的“Joe Doe”可能在用户表中存储为“Joseph Doe” - 其中在这种情况下,您需要手动编辑 Excel 数据以获取匹配项。
【讨论】:
UserID 表有一个键,即访问中的自动编号/ID 字段。这很好。它也有名字,还有 DIVISION#(让我们说 a、b 或 C),而我真正需要做的是计算每个旅行/月/季度的这些类型......无论如何。因此,当我尝试将包含所有名称的此计划表的字段设置为查找字段时,它不起作用,因为即使我设置了姓氏,它也想查看数字(我假设是自动编号)。我很难将名称设置为键,因为名称有多个,并且添加首字母是多余的! 但我追求的是某种方法来计算给定参数(行程、月份、季度)...那么你能建议在桌子之后解决这个问题的方法吗?交叉表查询??不知道该怎么做? @Justin - 更新成功了吗?您的 UserID 表中的名称与导入的计划数据之间的匹配程度是否不错?【参考方案2】:我有大约 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 箱的情况!
最好把它做成一个查找表。
【讨论】:
以上是关于MS Access 03 - 更新查询条件的一个字段中有多个“ifs”?的主要内容,如果未能解决你的问题,请参考以下文章