访问权-“访问权”;“条件表达式中的数据类型不匹配”;具有VBA功能
运行此查询时,条件表达式中出现错误数据类型不匹配。 看下面我试过的。问题是我如何进一步调查以发现错误访问权-“访问权”;“条件表达式中的数据类型不匹配”;具有VBA功能,vba,ms-access,Vba,Ms Access,运行此查询时,条件表达式中出现错误数据类型不匹配。 看下面我试过的。问题是我如何进一步调查以发现错误 SELECT qCalls.Senso, qCalls.Data, qCalls.Ora, qCalls.NumeroPulito, qCalls.Durata, qContactsOutlookPerCallsUNION.Azienda, IIf(Count([NOME])=1,First([NOME]),"**nomi multipli**") AS Nome2 FROM
SELECT qCalls.Senso, qCalls.Data, qCalls.Ora, qCalls.NumeroPulito, qCalls.Durata, qContactsOutlookPerCallsUNION.Azienda, IIf(Count([NOME])=1,First([NOME]),"**nomi multipli**") AS Nome2
FROM qCalls INNER JOIN qContactsOutlookPerCallsUNION ON qCalls.NumeroPulito = qContactsOutlookPerCallsUNION.Numero
GROUP BY qCalls.Senso, qCalls.Data, qCalls.Ora, qCalls.NumeroPulito, qCalls.Durata, qContactsOutlookPerCallsUNION.Azienda
ORDER BY qCalls.Data DESC;
单独调用时,qCalls
和qContactsOutlookPerCallsUNION
都能正确运行。
我的SQL中没有条件表达式(=据我所知,WHERE子句)。然后,我认为数据类型问题在于内部联接
部分,但是:
是一个字符串,来自:qCalls.numeriopulito
CStr(替换为numeriopulito([Number],“+39”)
是一个字符串,它来自于:qContactsOutlookPerCallsUNION.Numero
其中IIf(IsNull([Phone]),Null,PulisciTelPerCalls([Phone]),因为Fisso
是一个返回字符串的VBA函数PulisciTelPerCalls()
IIF()
造成的,因为它无论如何都会检查这两个条件,因此可能会向函数发送空值
Public Function PulisciTelPerCalls(ByVal Phone As Variant) As String
If IsNull(Phone) Then
PulisciTelPerCalls = vbNullString
Exit Function
End If
'rest of method
End Function
我认为您应该废弃IIF
,并在函数中处理空值
Public Function PulisciTelPerCalls(ByVal Phone As Variant) As String
If IsNull(Phone) Then
PulisciTelPerCalls = vbNullString
Exit Function
End If
'rest of method
End Function
然后直接调用该方法:
PulisciTelPerCalls([Phone]) AS Fisso
不必太确定,我相信错误是由内联if语句
IIF()
引起的,因为它无论如何都会检查这两个条件,因此可能会向函数发送空值
Public Function PulisciTelPerCalls(ByVal Phone As Variant) As String
If IsNull(Phone) Then
PulisciTelPerCalls = vbNullString
Exit Function
End If
'rest of method
End Function
我认为您应该废弃IIF
,并在函数中处理空值
Public Function PulisciTelPerCalls(ByVal Phone As Variant) As String
If IsNull(Phone) Then
PulisciTelPerCalls = vbNullString
Exit Function
End If
'rest of method
End Function
然后直接调用该方法:
PulisciTelPerCalls([Phone]) AS Fisso
字符串上的CStr没有意义。尝试将其删除并使用Nz:
及
或
字符串上的CStr没有意义。尝试将其删除并使用Nz:
及
或