gpt4 book ai didi

sql - 使用 ADODB 记录集执行联合更新​​查询

转载 作者:行者123 更新时间:2023-12-04 18:27:47 24 4
gpt4 key购买 nike

在下面的代码中,我想将 ADODB 记录集 'rs3' 连接到表 'tblValueChain10' 并根据 ADODB 记录集 'rs3' 中提取的值更新 3 个不同的列。目前,更新查询未返回任何内容。

Dim st_Sql3 As String
Dim rs3 As ADODB.Recordset
Set rs3 = New ADODB.Recordset
Dim Max3 As Integer

rs3.Open "SELECT tblRisk05Holding.IDMacroProcesso01, tblRisk05Holding.Level01Risk, Max(tblRisk05Holding.ManualityStatus) AS MaxDiManualityStatus, Max(tblRisk05Holding.RiskProbabilityStatus) AS MaxDiRiskProbabilityStatus, Max(tblRisk05Holding.RiskExposureStatus) AS MaxDiRiskExposureStatus FROM tblRisk05Holding GROUP BY tblRisk05Holding.IDMacroProcesso01, tblRisk05Holding.Level01Risk", CurrentProject.Connection


st_Sql3 = "UPDATE tblValueChain10 INNER JOIN rs3 ON (tblValueChain10.IDMacroProcesso01 = tblRisk05Holding.IDMacroProcesso01) SET L1RiskManuality = " & rs3.Fields(2) & ", L1RiskProbability = " & rs3.Fields(3) & ", L1RiskGravity = " & rs3.Fields(4) & ""
Application.DoCmd.RunSQL (st_Sql2)

rs3.Close
Set rs3 = Nothing

最佳答案

Access 不允许您将记录集对象用作另一个查询中的数据源。您是否拥有 ADO 或 DAO 记录集并不重要;你不能这样做。查询类型( SELECTUPDATEINSERT 等)也无关紧要;您不能在任何查询类型中使用记录集对象作为数据源。

通过首先将 UPDATE 语句保存为命名查询 qryRS3,您可能会得到一个可行的 SELECT。然后将UPDATE 修改为INNER JOIN tblValueChain10 到qryRS3。但我不确定 Access 是否会认为该查询是可更新的; GROUP BY 可能会导致 Access 将其视为不可更新。你必须测试才能看到。

关于sql - 使用 ADODB 记录集执行联合更新​​查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27977627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com