【发布时间】:2016-01-18 06:29:42
【问题描述】:
选择查询完美运行(访问 2013)。一旦我将它更改为交叉表,它就会给我错误“标准表达式中的数据类型不匹配”。我在交叉表值中使用 vba 函数作为表达式。我的表中没有空值,并尝试使用变体作为我的数据类型。
VBA
enter code here
'assumes that the rate is monthly
Public Function payFrequency(frequency As String, rate As Currency) As Currency
If frequency = "BI-WEEKLY" Then
payFrequency = rate * 12 / 26
Exit Function
ElseIf frequency = "SEMI-MONTHLY" Then
payFrequency = rate * 12 / 24
Exit Function
ElseIf frequency = "MONTHLY" Then
payFrequency = rate
Exit Function
Else
payFrequency = 0
Exit Function
End If
End Function
和 SQL
TRANSFORM
payfrequency([structurepayrollFrequency],
Max([2015_PREMIUM]-[2015_EMPLOYER_CONTR])) AS 2015_EMPLOYEE_CONTR
【问题讨论】:
-
我想知道如果您在查询中构建此函数而不是 VBA,会发生什么情况。无论如何,这将是我的首选解决方案;来自查询的 VBA 调用通常效率不高,而且更难排除故障。
-
成功了!谢谢斯曼多利。
标签: ms-access vba ms-access-2013 crosstab