Help Me !

Résolu
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 26 sept. 2006 à 13:03
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 26 sept. 2006 à 16:07
Bonjour à tous les membres de ce forum,

Je me présente rapidement... nouveau venu et débutant en VB.
Je ne suis pas programmeur mais j'ai décidé de me "remettre à la programmation"... je dis remettre car j'ai eu fait cela il y 20 ans environ en BASIC (tout ce qu'il y a de plus basic à l'époque). Je m'étais pas mal débrouillé pour l'époque puisque je m'étais fait un petit programme de compta (c'était mon métier en ce temps là. la comptabilité.)

Toujours passionné d'informatique, j'ai donc décidé de me replonger la tête dans la programmation et utilisant cette fois les outils actuels et mon choix c'est arrêté sur VB2005. Globalement assez satisfait... mais voila je "bug" sur un problème qui est sans doute simple à régler... mais voila... je n'y arrive pas et voila pourquoi je fais appel aux membres de cette communauté.

voila le problème :
Je développe un petit programme (pour mon entreprise) de saisie des règlements qui peuvent donc être par chèque, en espèce, par carte bancaire, etc...
petite interface toute simple avec un DateTimePicker pour la saisie de la date, des textbox pour la saisie du montant, du nom du client, etc... et un combobox pour la saisie du mode de règlement (chq, esp, CB, Vir) et c'est lui qui me pose problème.

Je cherche à vérifier que si le combobox n'est pas renseigné... zone vide, le focus reste sur cette zone afin de forcer l'utilisateur à la saisie.
J'ai essayé
If modereglt.text = "" Then modereglt.Focus() afin de boucler sur la zone en question... mais le programme semble totalement ignorer cette instruction et continue son déroulement.

J'ai donc ajouté un MsgBox("Saisie invalide pour mode de règlement", MsgBoxStyle.Critical)
mais le programme continue tout de même après avoir passé le Msgbox.

Je suis presque sûr que ce n'est pas grand chose... mais je n'arrive plus à voir grand chose... même en laissant reposer :-(

si quelqu'un pouvait me donner une idée ou une marche à suivre ?

merci d'avance.

Philippe - Sympa 74
 

3 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 sept. 2006 à 13:11
Sans plus de code difficile de te répondre mais essaye ceci :

If modereglt.text = "" Then
    modereglt.Focus()
    Exit Sub' ou Exit Function suivant si tu es dans un sub ou une function
End If

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
medelidrissi Messages postés 180 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 26 novembre 2007 2
26 sept. 2006 à 13:53
Bonjour,

Tout d'abord je te souhaite la bien venue en VB 2005.

En ce qui concerne ta question, si le combobox est lié directement à ta base il se peut qu'il a comme valeur par defaut un Null string, si c'est le cas essaye le test suivant :

If

modereglt.Text Is vbNullString OrElse Trim(modereglt.Text) = ""Then
   modereglt.Focus()
   Exit Sub 'Voir si dessus casy
End If
Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
3
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
26 sept. 2006 à 16:07
Merci beaucoup pour vos réponses à tous les deux....
Comme je le "pressentais"... c'est toujours ce qui crève les yeux que l'on ne voit pas... (remarquez c'est normal... difficile de voir avec les yeux crevés...:-))

bon alors j'avais tous bêtement oublié de mettre le exit sub à la fin de mon instruction... donc forcément... le programme il continuait le reste de la sub jusqu'au bout... c'est fou comme les choses vont mieux tout à coup.

merci encore.

Philippe - Sympa 74
 
0
Rejoignez-nous