【发布时间】:2021-06-18 05:19:11
【问题描述】:
希望你一切安好。
我在尝试让我的更新查询工作时遇到了一点麻烦,欢迎大家提供帮助。
所以我运行了查询,但它表明没有更新任何行,并且我在原始表中确实有记录。
这是我的 SQL 语句。
UPDATE tblFuelEntries INNER JOIN tblFuelMaster ON tblFuelEntries.EntryID2 = tblFuelMaster.EntryID2
SET tblFuelEntries.EntryID2 = [tblFuelMaster]![EntryID2], tblFuelEntries.FillDate = [tblFuelMaster]![FillDate], tblFuelEntries.FleetNo = [tblFuelMaster]![FleetNo], tblFuelEntries.Driver = [tblFuelMaster]![Driver], tblFuelEntries.FillOdo = [tblFuelMaster]![FillOdo], tblFuelEntries.PrevOdo = [tblFuelMaster]![PrevOdo]
WHERE (((tblFuelEntries.PrevOdo)=(SELECT TOP 1 Dup.FillOdo
FROM tblFuelEntries AS Dup
WHERE Dup.FleetNo = tblFuelEntries.FleetNo
AND Dup.FillDate < tblFuelEntries.FillDate
AND Dup.FillOdo < tblFuelEntries.FillOdo)));
基本上,我试图获取语句以查找先前的填充 odo 读数,并使用更新查询将其放入当前的 PrevOdo 列中。
我设法让它作为 SELECT SQL 语句完美地工作,但似乎无法将它放入 UPDATE 查询中。
提前谢谢你。
【问题讨论】:
-
通常没有理由存储这个。需要时计算。工作 SELECT 中的数据是否可编辑?
-
我猜可能是这样,但这取决于数据库中的记录。我知道不需要存储它,但存储这些值对我来说肯定会更好,这样我无论如何都可以拥有这些值,但更重要的是有没有办法实现我想要实现的目标?
-
是的,有办法。如果 UPDATE 操作证明不切实际,请使用 VBA 操作记录集。编辑问题以将示例数据显示为文本表。
-
您的查询有什么问题?你有错误吗?结果不正确?
-
不,我只是没有得到任何结果,状态 (0) 行已更新。将尝试下面的代码,看看会发生什么