2012-10-01 117 views
3

當使用如果語句VBA 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

是的,你是正確的,它只會執行第一個塊

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 to result_n是條件爲 發現爲真時執行的代碼。

1

If...ElseIf...EndIf不正是它表明在英語:

  • If第一條件爲真,執行第一個塊。
  • Elseif第二個條件爲真,執行第二個塊。

在你的情況,你想要兩個單獨的if語句;無論其他條件的結果如何,它們都將被獨立評估。