Communauté Informatique NDFR.net : Visual Basic et annuler une action - Programmation (C/C++, Delphi, VB, etc.)
Répondre
Visual Basic et annuler une action
Outils du sujet Modes d'affichage
  #1  
Ancien 18 August 2004, 13h57
Avatar de ThOMaZ2118
ThOMaZ2118 ThOMaZ2118 est hors ligne
Assassination Enthousiast
 
Date d'inscription: 27/05/2003
Lieu: HQ CIA, Langley, Viginia, United States
Âge: 35
Messages: 299
Envoyer un message par MSN à ThOMaZ2118
Visual Basic et annuler une action

Salut,

Je suis en train de faire un form oui il y a des textboxes a remplir mais qui ne sont pas facultatifs.
Je voudrais quand j'essaye de fermer la fenetre qu'il me dise que je dois remplis les cases.
Voici le code:
Code:
Private Sub Form_Unload(Cancel As Integer)
If a = 1 Then
    If txtName.Text = "" Then
        MsgBox ("All boxes have to be filled before you exit so the person is added")
    End If
End If
End Sub
Quand je ferme la fenetre il me donne bien le message box mais quand je fait OK il la ferme quand meme.
J'essaye de trouver un moyen pour qu'il ne la ferme pas quand je clic sur la croix et que la valeur de a est sur 1.

J'éspère que c'est clair :confused:

merci
Réponse avec citation
  #2  
Ancien 18 August 2004, 14h08
Avatar de Cougar
Cougar Cougar est hors ligne
Membre senior
 
Date d'inscription: 16/09/2001
Lieu: Orléans
Âge: 34
Messages: 3 850
Envoyer un message par MSN à Cougar
Jme souviens plus très bien de la syntaxe en VB, mais faudrait (c'est une des possibilités en tout cas) recharger le Form pour revenir à la "saisie du texte".
Un truc du genre form1.load ou quoi (mais doit y avoir des subtilités si y a plusieurs zone de saisies et qu'on ne veut pas tout effacer).

sinon jviens d'y penser là

Code:
Private Sub Form_Unload(Cancel As Integer)
Loop
If a = 1 Then
	If txtName.Text = "" Then
		MsgBox ("All boxes have to be filled before you exit so the person is added")
	End If
while txtname.text <> ""
 
End If
End Sub
enfin la syntaxe est ptet pas bonne, tu peux faire ça avec un return, ou un autre if imbriqué, etc etc
__________________
Réponse avec citation
  #3  
Ancien 18 August 2004, 14h49
Avatar de ThOMaZ2118
ThOMaZ2118 ThOMaZ2118 est hors ligne
Assassination Enthousiast
 
Date d'inscription: 27/05/2003
Lieu: HQ CIA, Langley, Viginia, United States
Âge: 35
Messages: 299
Envoyer un message par MSN à ThOMaZ2118
Si je me rapelle bine il s'agit de form.show mais quand on lui dit sur le exit qu'il doit ouvrir le form que l'ont viens de fermer, il ne le rouvre pas.

T'a solution ne m'a pas l'air mauvaise mais ca ne le fera que pour le premier textbox, si la personne commence par remplir la derniere case il ne pouras pas car il demanderas toujours de remplir la premiere.

Mais j'ai trouver une autre solution qui a a voir avec la base de donnees et je ne vais pas commencé a expliquer en detail mon devoir.

Merci pour l'aide, ca me sera utile
Réponse avec citation
  #4  
Ancien 18 August 2004, 15h47
Avatar de cameleon69
cameleon69 cameleon69 est hors ligne
Membre occasionnel
 
Date d'inscription: 02/01/2004
Lieu: Rhône-Alpes
Messages: 51
Pour que la méthode unload ne s'applique pas il faut mettre le code suivant

Code:
Cancel = 0 ou 1
Je ne sais plus si c'est 1 ou 0
Mais cela bloquera la méthode.
__________________
Réponse avec citation
  #5  
Ancien 18 August 2004, 18h37
Avatar de Cougar
Cougar Cougar est hors ligne
Membre senior
 
Date d'inscription: 16/09/2001
Lieu: Orléans
Âge: 34
Messages: 3 850
Envoyer un message par MSN à Cougar
Citation:
Originellement posté par ThOMaZ2118
T'a solution ne m'a pas l'air mauvaise mais ca ne le fera que pour le premier textbox, si la personne commence par remplir la derniere case il ne pouras pas car il demanderas toujours de remplir la premiere.
bah tu rajoutes d'autres conditions textbox <> "" and blablabla, comme c'est une petite app y a pas besoin d'écrire 2000 lignes de codes
__________________
Réponse avec citation
  #6  
Ancien 18 August 2004, 19h01
Avatar de cameleon69
cameleon69 cameleon69 est hors ligne
Membre occasionnel
 
Date d'inscription: 02/01/2004
Lieu: Rhône-Alpes
Messages: 51
Je pense que tu dois pouvoir faire une boucle while en testant si le control est un textbox et à ce moment la tester s'il est vide ou pas.
__________________
Réponse avec citation
  #7  
Ancien 18 August 2004, 19h17
Avatar de Magi-X
Magi-X Magi-X est hors ligne
Modérateur
1 Highscore
 
Date d'inscription: 31/10/2002
Lieu: Bruxelles
Âge: 35
Messages: 816
Envoyer un message par MSN à Magi-X
ben normalement il suffit de faire un "exit sub" ou quelque chose du genre, question qu'il ne termine pas le sub et il ne le fermera pas alors ... me souvien avoir utiliser ca dans un de mes script

pour plus d'info thomas tu sais comment me joindre
Réponse avec citation
  #8  
Ancien 19 August 2004, 11h20
Avatar de cameleon69
cameleon69 cameleon69 est hors ligne
Membre occasionnel
 
Date d'inscription: 02/01/2004
Lieu: Rhône-Alpes
Messages: 51
Bon je viens vite fait de faire un test chez moi.

Voici le genre de code que tu dois mettre pour tester si tous les controles TEXTBOX sont bien différents de vide.
Code:
 
Private Sub Form_Unload(Cancel As Integer)
Dim ctrl As Control
For Each ctrl In Me.Controls
	'je recherche que les controles de type Textbox
	If TypeOf ctrl Is TextBox Then
		'si le controle est vide alors je sors de la boucle 
		'et j'empeche la fermeture de la form
		If ctrl.Text = "" Then
			 Cancel = 1
			 'message informant d'une erreur
			 MsgBox "Vous devez remplir tous les champs obligatoires.",,"Erreur de saisie"
			 Exit For		
		End if
	End If
Next ctrl
End Sub
Voila qui devrait répondre à ta demande.
Cette méthode teste tous les controles de la form et si c'est une textbox elle vérifie que la textbox n'est pas vide, si tel est le cas à la première rencontrée elle sort de la boucle et ne ferme pas la fenêtre.
Bien entendu tu peux mettre un message à l'aide d'une msgbox avant le Exit For.
__________________

Dernière édition par cameleon69 ; 19 August 2004 à 11h25.
Réponse avec citation
Répondre

Signets


Utilisateurs actuellement actifs visualisant ce sujet : 1 (0 membres et 1 invités)
 
Outils du sujet
Modes d'affichage

Règles des messages
Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas poster de réponses
Vous ne pouvez pas envoyer de pièces jointes
Vous ne pouvez pas éditer vos messages

Le code BB est oui
Les Smilies sont activés : oui
Le code [IMG] est activé : oui
Le code HTML est activé : non

Aller au forum

Sujets similaires
Sujet Auteur Forum Réponses Dernier message
Trillian 3 Basic Spycam Tests utilisateurs 2 20 December 2004 14h02
RealProducer v10 Basic & Plus LeMoi Actualité 6 30 September 2004 18h52
Patchs pour Trillian Basic et Pro LeMoi Actualité 2 25 June 2004 00h10
Microsoft Visual Studio 6.0 Service Pack 6 Benjy Actualité 2 4 April 2004 07h00
Hercules DV Action ! Pro Werner Actualité 0 4 November 2002 10h49

Toutes les heures sont au format GMT +2. Il est actuellement 14h43.

Activé par vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.