Erreur avec la fonction switch

daddyel Messages postés 2 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 2 janvier 2006 - 22 nov. 2004 à 17:39
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 22 nov. 2004 à 18:23
Bonjour,
J'ai cherché une demi-journée en vain et sans résultat, voici mon problème:
J'ai dans un programme une fonction switch qui quand elle est exécuter arrête mon programme et me renvoie la valeur "Invalid

use of null".
Voici la portion du programme relative à cet incident.
Si vous avez une idée ça m'aidera bien quitte à remplacer cette fonction par une autre mais comment?

dim lavar As DAO.Recordset

Set lavar = DB.OpenRecordset("la table", dbOpenSnapshot)
lavar.MoveFirst
Do While Not lavar.EOF
Select Case lavar("Capital")
Case Is <= 0
MsgBox "Erreur de données : capital <=0 pour sinistre/police" + Str(lavar("SINNR")) + " /" + Str(lavar("POLNR"))
iRange = 1
Case 1 To 250000
iRange = 1
Case 250001 To 500000
iRange = 2
Case 500001 To 1250000
iRange = 3
Case 1250001 To 2500000
iRange = 4
Case 2500001 To 5000000
iRange = 5
Case 5000001 To 60000000
iRange = 6
Case 60000001 To 125000000
iRange = 7
Case Is > 125000000
iRange = 8
End Select
i Switch(lavar("Nom du champ") "Valeur1", 1, lavar("Nom du champ") = "Valeur2", 2, lavar("Nom du champ") = "Valeur3", 3,
lavar("Nom du champ") "Valeur4", 4, lavar("Nom du champ") "Valeur5", 5, lavar("Nom du champ") = "Valeur6", 6, lavar("Loss
cause") "Valeur8", 8, lavar("Nom du champ") "Valeur9", 9, lavar("Nom du champ") = "Valeur10", 10, lavar("Nom du champ") =

"#N/A", 1)

Merci

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 nov. 2004 à 18:09
Salut daddyel
-1- Bien que ça n'ait pas de rapport (je pense), pour utiliser les champs associés à un RecordSet, la syntaxe est :
lavar!NomChamp ' ou
lavar![Nom Champ] ' si le nom du champ à des espaces, ou
lavar.Fields(NoDuChamp) ' pour y accéder par n° d'ordre du champ dans la requète


-2- Sinon, à la place de Switch, tu peux utiliser :
Select Case lavar![Nom du champ]
Case "Valeur1" : i = 1
Case "Valeur2" : i = 2
...
End Select

Vala
Jack
NB : Je ne répondrai pas aux messages privés
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 nov. 2004 à 18:23
Salut,

Peu etre faut il teste aussi si tes champ on la valeur NULL en utilisant la fonction IsNull(lavar!NomChamp)

@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
Rejoignez-nous