首页 > 解决方案 > VBA计数表B中表A记录A中字段X的出现次数并插入表A记录A字段Y

问题描述

我有两张桌子。

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

这两个表都是同一表单上的临时表,并在调整日期范围或选择不同的用户时重新创建。

想在 Table-B 的远端添加一个 Field(aka, column) 来计算 Table-A 中 Table-b Field-A 的实例(我们称之为颜色)。

这必须发生多达 1000 次左右,所以我不确定从 Table-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 中?

标签: vbams-accesscount

解决方案


Table-B 是一个临时表,使用以下 UserName= Left(Me.cboUser, Len(Me.cboUser) - 6) sql = "INSERT INTO tblTempTableB SELECT * FROM SomeTable WHERE UserFieldName = '" & UserName & "'" CurrentDb .执行sql

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

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

很荒谬但有效。


推荐阅读