Defining Default Behavior for Select Case and If-Then-Else Statements
Unpredictable results can occur when no default action is defined for Select Case statements or If-Then-Else statements.
Recommendations
To avoid unpredictable results, always define default behavior when using Select Case of If-Then-Else statements.
The following are examples of incorrect and correct ways to define default behavior for situations not covered by the existing Select Case and If-Then-Else statements.
The author of this subroutine intends for the BG_USER_01 field to be visible only if the status of the defect is Open, New, or Reopen. However, if the IsVisible property of a Closed or Fixed defect was set to True prior to the instance of this subroutine, that Closed or Fixed defect will also be visible. This is because there is no case statement defined specifically for Closed and Fixed defects.
Example:
Sub Bug_FieldChange(FieldName)
If FieldName="BG_STATUS" Then
Select Case Bug_Fields(FieldName).Value
Case "Open", "New", "Reopen" _
Bug_Fields("BG_USER_01").IsVisible = True
End Select
End If
End Sub
This subroutine effectively handles all possible cases.
Example:
Sub Bug_FieldChange(FieldName)
If FieldName="BG_STATUS" Then
Select Case Bug_Fields(FieldName).Value
Case "Open", "New", "Reopen"
Bug_Fields("BG_USER_01").IsVisible = True
Case Else
Bug_Fields("BG_USER_01").IsVisible = False
End Select
End If
End Sub

