在条件中键入不匹配

时间:2014-06-11 05:44:02

标签: c# function vba ms-access

我是VBA的新手,但我一直在编写很多C#。我的问题是我不断得到"运行时错误13.键入Mismatch"我的VBA功能出错。

我从访问中的表中提取数据,然后尝试过滤一些数据。

我的功能如下:

Function FlowType(deliveryAdrID As String, deliverType As String, note As String) As String
    If (note = "*J") Then
        FlowType = "Weekend"
    ElseIf (deliveryAdrID = "62242" & deliverType = "H") Then
        FlowType = "AirGotland"
    ElseIf (deliveryAdrID <> "62242" & deliverType = "H") Then
        FlowType = "Air"
    Else
        FlowType = "Standard"
    End If
End Function

为什么会出现此错误?此行发生错误:

ElseIf (deliveryAdrID = "62242" & deliverType = "H") Then

2 个答案:

答案 0 :(得分:2)

您的问题是因为您使用的是&,而不是And。 &符号是连接字符串的运算符,而And是布尔运算符。所以,改变你的比较,如下:

ElseIf ((deliveryAdrID = "62242") And (deliverType = "H")) Then

使用&,(假设两个条件都满意),您使用的表达式将评估为

ElseIf ("TrueTrue") Then

这是没有意义的,因为&#34; TrueTrue&#34;不是布尔值。

答案 1 :(得分:1)

您将deliveryAdrID声明为Double,但是您尝试为其分配String

deliveryAdrID = "62242"

这是一种类型不匹配,正如VBA试图告诉你的那样。 ;)

所以,只需使用

deliveryAdrID = 62242