【发布时间】:2021-11-03 00:38:01
【问题描述】:
给我带来问题的字段是 unique required 字段,在 tbl1 上称为 ItemNo。我想从tbl2 复制ItemNo 字段值并将其添加到tbl1 ItemNo 字段中,但在字符串末尾添加D。所有ItemNo 字段的格式为Text
tbl1 目前看起来像:
ID ItemNo ItemDescription ....
1 001 Epoxy resin ....
2 002 Wood glue ....
tbl2 目前看起来像:
ID ItemNo ItemDescription ....
1 001 Epoxy resin ....
2 002 WD40 ....
预计 tb1 更新后的样子:
ID ItemNo ItemDescription ....
1 001 Epoxy resin ....
2 002 Wood glue ....
3 001D Epoxy resin ....
4 002D WD40 ....
可能是这样的:
CurrentDB.Execute "INSERT INTO tbl1 SELECT * FROM tbl2 ...."
我可以使用DAO 完成任务,但想知道它是否也可以使用 SQL。
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Set rs1 = CurrentDb.OpenRecordset("SELECT*FROM tbl1")
Set rs2 = CurrentDb.OpenRecordset("SELECT*FROM tbl2")
With rs2
.MoveFirst
Do Until rs2.EOF
rs1.AddNew
rs1.Fields("ItemNo").Value = rs2.Fields("ItemNo").Value & "D"
....
....
rs1.Edit
rs1.Update
rs2.MoveNext
Loop
End With
rs1.Close
Set rs1 = Nothing
rs2.Close
Set rs2 = Nothing
【问题讨论】:
-
不必在 DAO 示例中列出所有要复制的字段,在设置第一个字段后,您可以对其他字段使用循环(类似于
For lngLoop1=1 to rs1.Fields.Count-1:rs1.Fields(lngLoop1)=rs2.Fields(lngLoop1):Next lngLoop1)跨度> -
@Applecore 这确实有效,但对于很多记录来说速度很慢。 SQL 语句似乎更快,但看起来我必须明确定义语句中的所有字段。