【发布时间】:2017-05-02 03:42:03
【问题描述】:
我想计算 MS Access 表中逗号分隔字段中值的出现次数。请有任何建议:
例如
表格
ID |价值
1 | 1,2,3
2 | 1,5,8,9,5
3 | 1,5,8,3
期望的输出
ID | # 价值
1 | 3
2 | 5
3 | 4
【问题讨论】:
-
将需要一个可以在查询或文本框中调用的自定义 VBA 函数。开发代码,当您遇到特定问题时将其发布以供分析。
我想计算 MS Access 表中逗号分隔字段中值的出现次数。请有任何建议:
例如
表格
ID |价值
1 | 1,2,3
2 | 1,5,8,9,5
3 | 1,5,8,3
期望的输出
ID | # 价值
1 | 3
2 | 5
3 | 4
【问题讨论】:
正如 @June7 所说,您需要一个可以在查询中调用的自定义函数。
把它放在一个标准模块中:
Public Function CountValues(ByVal commaValues As Variant) As Long
If Not IsNull(commaValues) Then CountValues = UBound(Split(commaValues, ",")) + 1
End Function
您现在可以在查询中调用它:
SELECT ID, CountValues(FieldName) AS [# of value]
FROM YourTableName;
输出:
ID | [价值#]
1 | 3
2 | 5
3 | 4
4 | 0
NULL 值默认为零。
【讨论】:
您也可以使用内置函数来执行此操作,而无需调用自定义函数:
select value, Len([value])-Len(Replace([value],",","")) as [# of value]
【讨论】:
Len(Replace([value], ",", ""))。但是,如果值超过 9,结果将再次错误。