1

SQL Reporting Services でこのカスタム コードを使用しています。問題は、決して偽の状態に達しないことです。条件が真でない場合、関数は「偽」を返しません。値が 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 には「Return」ステートメントがありません。使用する値を返すには (例)

....

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

End Function 

または(はるかに整頓された):

  ....
  CodeExist = (Centinela = 1)

End Function
于 2012-04-19T01:28:58.543 に答える