Access VBA

sambb59 Messages postés 40 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 11 avril 2006 - 24 juin 2005 à 16:21
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006 - 5 juil. 2005 à 16:15
Bonjour


Mon problème est le suivant :


J’ai crée une table ville avec comme champ le nom de la ville ainsi que le nombre de case :
Explication du nombre de case : chaque ville possède un nombre de case, par exemple Lys Lez Lannoy à pour nombre de case 1 tandis que Armentières à pour nombre de case 4, en faite plus la ville est éloignée plus le nombre de case est élevée.


Je dois faire un planning, pour gérer la livraison des commandes.


J’ai donc fait un formulaire ou j’y ai mis des listes déroulantes contenant le nom des villes :


Une fois que l’utilisateur a choisi sa ville, il doit entrer le nombre de case correspondant à la ville.


Enfin pour que le planning soit valider le nombre total de case doit être inférieur à 10 ou 4 cela dépend de l’horaire de livraison.


Voilà le code que j’ai mis sur mon bouton " vérification " :


Dim Tot As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer


Private Sub Bascule87_Click()


Tot = 0


a = case1.Value
b = case2.Value
c = case3.Value
d = case4.Value
Tot = a + b + c + d


If Tot <= 10 Then
MsgBox ("Votre planning est correcte")
Else: MsgBox ("Votre planning est supèrieur à 10 cases")End If


End Sub


Les listes déroulantes ne sont pas tous utilisables l’un de met premier problème est lorsqu’il me met un message d’erreur en me disant que les valeurs null sont interdites.


Enfin mon dernier problème est lors de la vérification, il ne contrôle pas la condition il me met toujours la condition après le then.


Merci d'avance pour l'aide que vous m'apporterer .

4 réponses

omsylv Messages postés 69 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005
24 juin 2005 à 16:30
salut,



il faut qu'à chaque valeur , au lieu de faire a = case1.value tu fasses



if isNull ( case1.value) then

a = 0

else : a = case1.value



Sinon, je ne comprends pas ton problème sur la condition, peux tu réexpliquer ?
0
sambb59 Messages postés 40 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 11 avril 2006
24 juin 2005 à 16:53
If Tot <= 10 Then
MsgBox ("Votre planning est correcte")
Else: MsgBox ("Votre planning est supèrieur à 10 cases")End if

Le problème sur la condition est que si jamais tot = 8
alors il va me mettre "Votre planning est correcte"
si l'utilisateur remanipule est que tot = 12 il va afficher
"Votre planning est correcte" alors qu'il ne l'ai pas.

si je change le if, en mettant l'inverse:
If Tot >= 10 Then
MsgBox ("Votre planning est supèrieur à 10 cases")
Else: MsgBox ("Votre planning est correcte")
End if

que j'entre une valeur supèrieur ou inférieur à 10 il m'affichera toujours "Votre planning est supèrieur à 10 cases"

j'espère que c'est plus compréhensible cette histoire de condition ?!!

Merci bizz
0
omsylv Messages postés 69 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005
24 juin 2005 à 16:57
Essaye avec le If que je t'ai dit. sinon si ce sont des listes déroulante remplace les .value par .column(0)

sinon je ne sais pas.
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
5 juil. 2005 à 16:15
Salut pour ton histoire de condition, affiche la valeur de Tot pour
voir si c'est un problème de condition ou un probleme de valeur de Tot.

Ah l'informatique c'est bien quant même quand ça marche
0
Rejoignez-nous