在下面的代码中,我想将 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 记录集都没有关系;你做不到。和查询类型(SELECT
, UPDATE
, INSERT
等)也没关系;您不能在任何查询类型中使用记录集对象作为数据源。
你可能会得到一个可行的UPDATE
首先保存你的SELECT
语句作为命名查询,qryRS3。然后修改UPDATE
to INNER JOIN
tblValueChain10 to qryRS3。但我不确定 Access 是否会认为该查询是可更新的;这GROUP BY
可能会导致 Access 将其视为不可更新。你必须测试一下才能看到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)