我的公司有一个大的Access数据库,其中列出了我们的一个特定客户曾经存在的每个用户。该数据库是手动管理的。我被要求删除500多个用户。这意味着我必须为每个用户修改三列:
- 状态(必须更改为"已删除")
- 日期删除(改为当前日期)
- 修改日期(为当前日期)
显然,我不想为超过500个用户手动更改Ctrl+F这些字段。最简单的方法是什么?
我有需要在Excel中删除的用户列表。我尝试创建一个查询,在一个表中显示所有这些用户,这样我就不必对不需要修改的用户进行排序。它看起来像这样:
SELECT UserID, Status, Date Deleted, Date Revised
FROM [database name]
WHERE UserID = 'a'
OR UserID 'b'
//(and then 500+ more OR statements for each UserID)
ORDER BY UserID;
我想如果我至少能做到这一点,至少我需要编辑的所有用户都在我面前,这样我就不必按Ctrl+F了。但是这不起作用,因为它超过了Access中的1024个字符限制。有什么好主意吗?
不要试图在SQL语句中写入500多个UserID值。相反,将Excel列表作为表导入到Access数据库中。然后,您可以使用UserID值列表来确定应该更新主表的哪些行。
UPDATE MainTable AS m
SET m.Status = 'deleted', m.[Date Deleted] = Date(), m.[Date Revised] = Date()
WHERE m.UserID IN (SELECT UserID FROM tblFromExcel)