L'instruction Select est similaire à une instruction If. Quelquefois, cependant, vous pourrez écrire des formules plus claires et moins répétitives à l'aide de l'instruction Select. Par exemple, pour évaluer le champ {Clients.Fax} afin de déterminer si l'indicatif correspond à l'état de Washington (206, 360, 509) ou de la Colombie-Britannique au Canada (604, 250) :
Rem Select - exemple 1 Select Case Left ({Clients.Fax}, 3) Case "604", "250" formula = "CB" Case "206", "509", "360" formula = "WA" End Select
L'expression se trouvant juste après le mot clé Select Case est appelée la condition Select. Dans l'exemple ci-dessus, il s'agit de Left ({Clients.Fax}[1 To 3]). L'instruction Select recherche le premier cas (Case) qui correspond à la condition Select, puis exécute les instructions qui suivent jusqu'au cas (Case) suivant.
Rem Même effet que l'exemple 1 de Select Dim codeZone As String codeZone = Left ({Clients.Fax}, 3) If codezone In Array ("604", "250") Then formula = "CB" ElseIf Codezone In Array ("206", "509", "360") Then formula = "WA" End If
Exemple
Cette formule groupe le nombre de nominations aux Oscars reçues par un film dans l'une des catégories faible, moyen, élevé ou très élevé et montre dans le processus certaines des possibilités pour les listes d'expressions qui suivent les intitulés des cas. Remarquez la clause Case Else, qui est facultative. Si aucune des listes d'expressions Case ne correspond aux clauses Case précédentes, alors la clause Case Else est choisie. Dans l'exemple suivant, si {movie.NOM} est égal à 11, la formule renvoie "élevée".
Rem Select - exemple 2 Select Case {movie.NOM} Case 1,2,3, Is < 1 Rem Il est possible d'avoir des instructions multiples Rem dans les blocs d'instructions formula = "basse" Case 4 To 6, 7, 8, 9 formula = "moyenne" Case 10 formula = "haute" Case Else formula = "élevée" End Select
Structures de contrôle | Instructions If | Instructions For/Next