Ms access MS Access根据现有表的ID向其添加/更新查询结果
我按照其他人的提示生成访问查询 我有两张桌子。参见图1。结果如图2所示 图1 图2 中解决了生成结果查询的方法 查询脚本:Ms access MS Access根据现有表的ID向其添加/更新查询结果,ms-access,sql-update,ms-query,Ms Access,Sql Update,Ms Query,我按照其他人的提示生成访问查询 我有两张桌子。参见图1。结果如图2所示 图1 图2 中解决了生成结果查询的方法 查询脚本: TRANSFORM Nz(Count([number]),0) AS CountValue SELECT Table1.ID FROM Table1, Table2 WHERE (((Table2.number) Between [table1].[start] And [table1].[end])) GROUP BY Table1.ID PIVOT DatePart
TRANSFORM Nz(Count([number]),0) AS CountValue
SELECT Table1.ID
FROM Table1, Table2
WHERE (((Table2.number) Between [table1].[start] And [table1].[end]))
GROUP BY Table1.ID
PIVOT DatePart("yyyy",[ndate]);
我的问题是:
是否仍然需要将查询结果写回表1
我想在表1中添加两个新列。并且能够根据字段的“ID”向字段添加或更新查询值
我不确定我的描述是否清楚。希望您能理解并感谢您的帮助 你不能直接做这件事。然而,这里有两种间接的方法 方法1:临时表格 这种方法最适用于快速且不干净的一次性解决方案
- 运行sql语句以更新表1,或
- 按ID打开第二个记录集并进行编辑/更新
Public Sub UpdateAnnualTotal(ByVal nYear As Long)
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
Dim sId As String
Dim nTotal As Long
Set db = CurrentDb
sSQL = "SELECT [ID],[" & nYear & "_count"] FROM AnnualTotalsQuery"
Set rs = db.OpenRecordset(sSQL)
With rs
Do Until .EOF
sId = .Fields("ID").Value
nTotal = .Fields(nYear & "_count").Value
sSQL = "UPDATE [Table 1] SET [" & nYear & "_count"] = " & nTotal _
& " WHERE [ID] = '" & sId & "'"
db.Execute sSQL
.MoveNext
Loop
.Close
End With
End Sub
你好,谢谢你的回复。我不熟悉VBA。如果我想尝试方法2,我需要单击“visual basic”按钮?并将脚本插入其中?但我不知道怎么触发它@@我想混合方法1和方法2。当我运行查询时,它将创建一个临时表。(我的临时表现在只有同一年的数据,例如:所有数据都将是2000)您是否可以教我如何使用一个表并根据其ID更新另一个表的字段?谢谢你>