表B中表A记录A的字段X发生VBA计数,并将表A记录Y插入表A

时间:2019-05-24 08:59:35

标签: count access-vba

我有两个桌子。

例如 表A是订单列表 表B是一个列表或“颜色选项”(最多约1000个选项)

两个表都是临时表,具有相同的形式,并且在调整日期范围或选择其他用户时会重新创建。

想在表B的远端添加一个字段(又名列),该字段对表B中表b的字段A的实例(称为颜色)进行计数。

这最多必须发生1000次左右,所以我不确定从表B构建的颜色选项数组是否合适或计算所得的列?

'原始思想...

Dim db As DAO.Database
Dim TD As DAO.TableDef
Dim fld As DAO.Field
Dim i As Integer

Set db = CurrentDb()
Set TD = db.TableDefs("tblColor")

Set fld = TD.CreateField("NbrOrders", dbInteger)
fld.Expression = ColorCountCalc([Color])
TD.Fields.Append fld

这不起作用,因为对另一个表A中的表B(tblColor)中某个项目的实例进行计数比我想的要复杂。

基本上,不确定这是否是最好的方法,或者不确定是否遍历表B并仅进行计数并插入结果是最佳方法,尽管担心会陷入困境...

是否有一种简单的方法可以从tblB完成对tblA的计数并将其插入tblB?

1 个答案:

答案 0 :(得分:0)

表B是使用以下命令构建的临时表 UserName = Left(Me.cboUser,Len(Me.cboUser)-6) sql =“ INSERT INTO tblTempTableB SELECT * FROM SomeTable WHERE UserFieldName ='”&UserName&“'” CurrentDb.Execute sql

表A是使用表B的结果构建的临时表。

重建表B以添加计数列     '创建新的tblTempTableB表 NEW         DoCmd.SetWarnings为False         DoCmd.OpenQuery“ qryMaketblB”         DoCmd.SetWarnings为True         Forms!frmForm.Refresh

很荒谬,但是行得通。