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

时间:2013-12-19 03:12:45

标签: sql vba access-vba ms-access-2010

我需要一些这方面的帮助,我似乎找不到正确的问题要求得到答案。我们有一张表基本上是1个主键,130个软件标题是Yes / No字段。我需要通过字段名称计算值(计数),我们可以使用简单的聚合查询来计算,但我的理解是,它只返回创建时查询中包含的字段的结果。随着额外的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 个答案:

答案 0 :(得分:1)

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

以下代码来自An 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