Access 2013 - 在添加任何新字段时计算字段值

Posted

技术标签:

【中文标题】Access 2013 - 在添加任何新字段时计算字段值【英文标题】:Access 2013 - Count Field Values While Adding Any New Fields 【发布时间】:2013-12-19 03:12:44 【问题描述】:

我在这方面需要一些帮助,但我似乎找不到合适的问题来寻求答案。我们有一个表,它基本上是 1 个主键和 130 多个软件标题作为是/否字段。我需要按字段名称计算值(计数),我们可以使用简单的聚合查询来完成,但我的理解是只会返回创建查询时包含在查询中的字段的结果。随着额外的 SW 字段被添加到表中,我还需要包括这些字段的计数。有没有一种简单的方法可以做到这一点。我的脑袋炸了!提前致谢。

PK SW1 SW2 SW3 ...
 1   1   0   1
 2   1   0   0
 3   0   1   1

所以我需要返回:

 SW1 SW2 SW3
  2   1   2

如果 SW4 已添加到表中,则还包括该字段的结果。

克里斯

【问题讨论】:

我想你已经发现了为什么这是一个可怕的数据结构。如果您能够修改数据库设计,您可能会重新考虑它。 【参考方案1】:

假设您在访问中使用 vb,您可以获取字段名称并为任何添加的字段动态构建新查询。

下面的代码来自example of how to get field names of a table。获取字段名称后,将它们放入数组中并删除在构建查询时存在的任何内容。然后为任何添加的字段动态构建一个新查询。可能比您希望的要多,但它会奏效。

Public Function fReturnFieldList(strTableName)
Dim rst As DAO.Recordset
Dim fld As Field
Dim strReturn As String

   On Error GoTo ProcError

   Set rst = CurrentDb.OpenRecordset(strTableName)
   For Each fld In rst.Fields
      strReturn = strReturn & ", " & fld.Name
   Next fld

EXIT_Proc:
   fReturnFieldList = Mid(strReturn, 3)
   On Error GoTo 0
   Exit Function

ProcError:
   strReturn = ", Cannot process " & strTableName
   Resume EXIT_Proc

End Function

【讨论】:

我知道表格结构很糟糕,但是解决方法就像一个魅力!感谢您的帮助!

以上是关于Access 2013 - 在添加任何新字段时计算字段值的主要内容,如果未能解决你的问题,请参考以下文章

单击复选框时计算总数

有没有办法在编译时计算整数类型的宽度?

当枢轴不是第一个元素时计算比较

iOS7 Sprite Kit如何在更改锚点时计算节点位置?

java - 如何在java脚本或jquery中单击两次相同的按钮时计算间隔时间

在两个摄像机之间进行旋转和平移时计算单应性