2017-05-01 65 views
0

我想计算MS Access表中逗号分隔字段中值的出现次数。任何建议请: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

+0

需要一个自定义的VBA功能,可以在查询或文本框被调用。开发代码并在遇到特定问题时将其发布用于分析。 – June7

回答

1

As @ 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值默认为零。

+0

非常感谢你:) – Jerry

0

你也可以与内置的功能做到这一点,而不调用自定义函数的开销:

select value, Len([value])-Len(Replace([value],",","")) as [# of value] 
+0

@Gungor,感谢您的回答,但是当我在查询中使用Replace时,出现错误Error:Undefined function'Replace'in expression。 – Jerry

+0

这很奇怪。它可能与你的设置有关,与运行“不安全表达式”有关。你的环境是什么? windows/office版本 –