条件表达式中的访问交叉表数据类型不匹配
Access Crosstab Data type mismatch in criteria expression
select 查询完美运行(访问 2013)。一旦我将它更改为交叉表,它就会给我错误 "Data type mismatch in criteria expression." 我在交叉表值中使用 vba 函数作为表达式。我的 table 中没有空值,并尝试使用 variant 作为我的数据类型。
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 来自查询的调用通常效率不高,而且更难排除故障。
select 查询完美运行(访问 2013)。一旦我将它更改为交叉表,它就会给我错误 "Data type mismatch in criteria expression." 我在交叉表值中使用 vba 函数作为表达式。我的 table 中没有空值,并尝试使用 variant 作为我的数据类型。
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 来自查询的调用通常效率不高,而且更难排除故障。