Définition du comportement par défaut des instructions Select Case et If-Then-Else

Des résultats imprévisibles peuvent se produire lorsqu’aucune action par défaut n’est définie pour les instructions Select Case ou If-Then-Else.

Recommandations

Pour éviter des résultats imprévisibles, définissez toujours un comportement par défaut lorsque vous utilisez les instructions Select Case ou If-Then-Else.

Voici des exemples de méthodes correctes et incorrectes pour définir un comportement par défaut dans des situations non couvertes par les instructions Select Case et If-Then-Else existantes.

Utilisation incorrecte

L’auteur de ce sous-programme souhaite que le champ BG_USER_01 ne soit visible que si le statut du défaut est Ouvert, Nouveau ou Réouvert. Toutefois, si la propriété IsVisible d’un défaut Fermé ou Fixé était définie sur True avant l’instance de cette sous-routine, ce défaut Fermé ou Fixé sera également visible. Cela est dû au fait qu’il n’y a pas de déclaration de cas définie spécifiquement pour les défauts fermés et corrigés.

Exemple :

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

 

Utilisation correcte

Cette sous-routine traite efficacement tous les cas possibles.

Exemple :

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