Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access 2013-添加任何新字段时计算字段值_Sql_Ms Access_Vba_Ms Access 2010 - Fatal编程技术网

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

Sql Access 2013-添加任何新字段时计算字段值,sql,ms-access,vba,ms-access-2010,Sql,Ms Access,Vba,Ms Access 2010,这个问题我需要一些帮助,但我似乎找不到合适的问题来回答。我们有一个表,基本上是1个主键和130多个软件标题作为是/否字段。我需要按字段名计算值(count),这可以通过简单的聚合查询完成,但据我所知,在创建查询时,只会返回查询中包含的字段的结果。随着额外的软件字段添加到表中,我还需要包括这些字段的计数。有没有一个简单的方法来实现这一点。我的脑袋快炸了!提前谢谢 PK SW1 SW2 SW3 ... 1 1 0 1 2 1 0 0 3 0 1 1 因此,

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

PK SW1 SW2 SW3 ...
 1   1   0   1
 2   1   0   0
 3   0   1   1
因此,我需要返回:

 SW1 SW2 SW3
  2   1   2
如果将SW4添加到表中,也包括该字段的结果


Chris

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

下面的代码来自一个。获取字段名后,将其放入数组中,并删除生成查询时存在的所有字段名。然后为任何添加的字段动态构建一个新查询。可能比你期望的要多,但它会起作用的

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

我想你已经发现了为什么这是一个可怕的数据结构。如果可以修改的话,你可以重新考虑DB的设计。我知道表结构很糟糕,但这种变通方式很有魅力!!谢谢你的帮助!