我问过一个朋友,因为我多年没有编程,所以我在访问数据库中遇到了一个问题,这是他回复的内容:
让我举一个例子,以确保我正在看这个 对。你从ID为1的记录开始。这会得到更新,而且 系统生成ID为2的新记录,并带来旧ID 在RenewalOf字段中为1,以此类推,以便将来续订。如果说 是正确的,每个记录只允许引用一次(所以 RenewalOf中只有一条ID为1的记录 字段),然后以下应该工作:
这段代码不起作用:
UPDATE
tblSold
SET
RenewedToID = RenewalRecord.SoldID
FROM
tblSold
INNER JOIN tblSold RenewalRecord ON
tblSold.SoldID = RenewalRecord.RenewalOf
不确定SQL查询中允许哪些内容,但这是基本的 应该没事。您还可以添加一些标准以仅更新 RenewedToID字段为空的记录,或仅记录一个记录的记录 如果您在添加新记录后正在处理此问题。您可以 通过运行以下命令检查以确保它能够正常工作:
但是这样做了:
SELECT
tblSold.SoldID
,RenewalRecord.SoldID
FROM
tblSold
INNER JOIN tblSold RenewalRecord ON
tblSold.SoldID = RenewalRecord.RenewalOf
这将列出原始ID以及续订ID,即一个 这将被放入原始记录中。让我知道这是否有效或 如果你有任何问题。
你能帮助我在Access 2007中制作他的第一个代码片段吗?
答案 0 :(得分:1)
您可能需要稍微重新安排Access的更新:
UPDATE
tblSold
INNER JOIN tblSold RenewalRecord ON
tblSold.SoldID = RenewalRecord.RenewalOf
SET
tblSold.RenewedToID = RenewalRecord.SoldID
其他一些SO答案显示了这种语法:
SQL Update Statement in MS Access
How to create a correlated update subquery in MS-Access?