如果声明VBA ACCESS 2010

时间:2012-10-01 04:46:12

标签: vba if-statement ms-access-2010

使用

If Then
'Do Something
Else If
'Do Something
End If 

如果第一个和第二个条件为真,它会仅执行第一个或两个条件吗?

由于某些原因,我有这个代码:

Dim Report As String

If (DateRange_Pro_TotalCount > 0) Then

        Dim DateRange_Pro_ReportStr As String

        DateRange_Pro_ReportStr = "Total Referrals: " & DateRange_Pro_TotalCount & vbNewLine _

        Report = Report & DateRange_Pro_ReportStr

    ElseIf (DateRange_InPro_TotalCount > 0) Then

        Dim DateRange_InPro_ReportStr As String

        DateRange_InPro_ReportStr = "Total Referrals: " & DateRange_InPro_TotalCount & vbNewLine _

        Report = Report & DateRange_InPro_ReportStr

End If

'next statement prints report variable to textBox

即使两个条件都为真,此语句也只执行第一个条件。我将'Else If'更改为'End If'和'If'(两个差异条件语句而不是一个带有两个条件的语句)并且它有效。

2 个答案:

答案 0 :(得分:2)

是的,你是对的,它只会执行第一个块

来自IF-THEN-ELSE Statement (VBA)

If condition_1 Then
    result_1

 ElseIf condition_2 Then
   result_2
 ...
 ElseIf condition_n Then
    result_n

 Else
   result_else

 End If
  

condition_1到condition_n按列出的顺序进行评估。 一次   如果发现条件为真,则执行IF-THEN-ELSE语句   相应的代码,不再评估条件。

     

result_1到result_n是条件一旦执行的代码   发现是真的。

答案 1 :(得分:1)

If...ElseIf...EndIf完全符合英语的建议:

  • If第一个条件为true,执行第一个块。
  • Elseif第二个条件为真,执行第二个块。

在您的情况下,您需要两个单独的if语句;无论其他条件的结果如何,它们都将被独立评估。