Sql Access 2013-添加任何新字段时计算字段值
这个问题我需要一些帮助,但我似乎找不到合适的问题来回答。我们有一个表,基本上是1个主键和130多个软件标题作为是/否字段。我需要按字段名计算值(count),这可以通过简单的聚合查询完成,但据我所知,在创建查询时,只会返回查询中包含的字段的结果。随着额外的软件字段添加到表中,我还需要包括这些字段的计数。有没有一个简单的方法来实现这一点。我的脑袋快炸了!提前谢谢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 因此,
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的设计。我知道表结构很糟糕,但这种变通方式很有魅力!!谢谢你的帮助!