1

我在 SQL Reporting Services 中使用此自定义代码。问题是它永远不会达到错误的条件。如果条件不成立,该函数将不会返回“false”。当值为 True (prints "X") 时它工作正常,否则我得到一个 #Error 。

我正在从文本框中调用该函数:

= IIF(Code.CodeExist(Variables!MyCode.Value) = true, "X", "")


    function CodeExist( ByVal  Codigo As String) as Boolean

    dim i as integer
    dim Centinela as integer

    i = 0

    Centinela = 0 

    for i = 0  To   Report.Parameters!CodeList.Count()
         if  Report.Parameters!CodeList.Value(i) = Codigo Then
               Centinela = 1
               Exit For
         End If
    Next 


    If Centinela = 1 Then
        Return true
    Else
        Return false      // IT NEVERS RETURN FALSE even if Centinela = 0
    End If

    End function

我不知道发生了什么。提前致谢。

4

1 回答 1

5

VBA 没有“返回”语句。要返回您将使用的值(例如)

....

  If Centinela = 1 Then     
   CodeExist = True 
  Else     
   CodeExist = False    
  End If  

End Function 

或(更整洁):

  ....
  CodeExist = (Centinela = 1)

End Function
于 2012-04-19T01:28:58.543 回答