Question con ... Comment on fait pour fermer l'appli en VB ?

Résolu
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 - 9 août 2004 à 15:29
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 - 10 août 2004 à 09:57
Salut,

Je sais c très nul comme question...

J'ai développé une appli en VB Mais il y a un truc qui m'énerve ...
Mon bouton Quitter ne fonctionne pas :'( !!

J'aimerais lorsque je clic dessus fermer mon appli VB ! Allez pas dur ça :)

Désolé pour mon ignorance mais je n'ai pas MSDN c nul !!

19 réponses

devil_recycler Messages postés 170 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 8 février 2007
9 août 2004 à 15:34
bah tu fais end

>:) Devil_Recycler >:)
3
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 août 2004 à 15:40
Unload ME sur le form principal
ou
End
ou
Application.Exit() (en .NET)

::|The S@ib|::
MVP C#.NET
3
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 août 2004 à 16:41
Eh bien voilà...
Donc, tu fais Unload Me après MsgBox "Fichier bien envoyé :)"

Autre solution, comme dans tous les cas, tu fermes ta fenêtre (donc ton prog) à la fin, tu fais simplement

...
If reponse = 6 then
Mere.Show
MONTBAPPRO
MsgBox "Fichier bien envoyé :)"
end if
Unload Me

End Sub

@+
3
cs_prezz Messages postés 71 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 10 octobre 2008
9 août 2004 à 15:37
tu as essayé docmd.quit ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
9 août 2004 à 15:39
Ouah bah j'ai tout essayé sauf ca !!
Mais c trop simple lol !!
Merci :)
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 août 2004 à 15:42
Salut,
Ben "End", c'est un peu une méthode de bourrin (si tu me passes l'expression... Cliqueur de quartier, c'est mieux).

Le mieux, c'est de fermer toutes les instances de fenêtres et autres.

Si tu nous mettais le code de ton bouton "Quitter", on verrait mieux.

>devil_recycler : soit surtout pas fâché de ce que j'ai dit, je ne lance pas la pierre, j'ai utilisé aussi End des tas de fois, mais ça n'est pas "propre" comme façon de fermer un programme, c'est comme ça qu'on a des fuites de mémoire et divers autres problèmes...

Bonne prog, @+
0
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
9 août 2004 à 15:51
Alors en fait Je pose une question via Msgbox au début du prog :

''Voulez vous envoyer les fichiers maintenant ? OK Annuler''

Si le gars fait ok ca change de place un fichier et ca lui met une ligne d'entête si il fait annuler, ca quitte l'appli...

Vu qu'il n'y a rien d'ouvert (form etc.. ) je pense que la commande End n'est pas trop grave dans ce cas...

A moins que je ne me trompe...

Tu utiliserais quoi toi Olivier ?
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 août 2004 à 16:01
Re-salut,

S'il n'y a vraiment pas de Form, c'est que tu utilises une Sub Main je suppose, et rien d'autre. Et dans ce cas, une fois que tu arrive à la fin de la Sub, si tu n'as rien instancié, pas de problème, fin du prog.

En fait, la question est de savoir si tu es vraiment sur de ne pas charger une form ? Du genre tu fais un Load Form1 et tu ne l'affiches pas.

@+
0
devil_recycler Messages postés 170 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 8 février 2007
9 août 2004 à 16:15
no problemo je suis un bourrin :(

>:) Devil_Recycler >:)
0
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
9 août 2004 à 16:24
bah maintenant que tu le dis c vrai que j'affiche une FORM pour indiquer que le travaille est en cours mais je ne l'ouvre qu'après avoir demander si oui ou non on veut ''envoyer le fichier".

Donc au moment de fermer je n'ai rien d'ouvert. (lol <== je trouve ca marrant ce que je vien d'écrire lolol)

Voila.. :)

PS : YEAAAH Devil_recycler :big)
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 août 2004 à 16:25
Re...

>devil_recycler : je te l'ai dit, faut pas te facher, les mots m'ont échapés (en fait c'est ce que m'a dit un de mes prof un jour...), je suis désolé pour ces termes. Mea maxima culpa.

>Bal1n : Tu te répètes, non ? J'avais lu, mais je ne comprends pas de quelle Sub peut bien venir ta Msgbox, où est-elle appelée dans ton code ?

@+
0
devil_recycler Messages postés 170 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 8 février 2007
9 août 2004 à 16:29
>MoiOlivier : oh mais non je suis pas faché...en fait je le suis tout le tmps :(

>:) Devil_Recycler >:)
0
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
9 août 2004 à 16:32
Ah oui pardon ...
Je viens de penser que je ne fermai pas l'appli si le gars répondait "oui" ! lol

bah en fait voici le code :

Private Sub Form_Load()

response = MsgBox("Voulez vous envoyer les fichiers maintenant ?", vbYesNo)

If response = 7 Then
    End '********** <== C ici 
Else

    Mere.Show
    MONTBAPPRO
    MsgBox "Fichier bien envoyé :)"
    
End If

End Sub

0
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
9 août 2004 à 16:55
D'accord :)
Merci bcp monsieur

D'ailleurs je trouve ca débile qu'il y ai plusieurs façon de quitter !!

Si end est si dangereuse que ca alors pourquoi l'inclure dans VB6 ??! Encore une bizarrerie Microttesoft (j'utilise un faux nom pour pas faire de pub :).... Enfin bref

Merci tout le monde :)
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 août 2004 à 17:05
Lol ! "Monsieur" !
Hihi !

Sans rire, c'est effectivement une bonne question, faudra la poser un jour sur le forum : à quoi peut bien servir le End ?

Mais bon, faut pas dramatiser non plus, End est loins d'être un monstre qui va te bouffer ton PC, si je disais ça, c'est pour les puristes (et yen a). Tu peux l'utiliser, faut pas avoir peur, mais si tu arrives à fermer ton prog autrement (proprement), c'est mieux (juste mieux, sans plus en ce qui me concernce).

@+
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 août 2004 à 17:08
Pour l'édification de tous, voilà ce que me disent les MSDN (en français s'il vous plait) :

Note L'instruction End met immédiatement fin à l'exécution du code, sans appeler d'événement Unload, QueryUnload, ou Terminate, ou tout autre code Visual Basic. Le code que vous avez écrit dans les événements Unload, QueryUnload, et Terminate desfeuilles et desmodules de classe n'est pas exécuté. Les objets créés depuis les modules de classe sont détruits, les fichiers ouverts au moyen de l'instruction Open sont fermés et la mémoire occupée par le programme est vidée. Les références d'objet appartenant à d'autres programmes ne sont plus valides.

L'instruction End permet de forcer l'arrêt du programme. Pour qu'un programme Visual Basic se termine normalement, vous devez décharger toutes les feuilles. Votre programme se termine lorsqu'il n'y a plus aucun programme maintenant des références à des objets créés depuis vos modules de classe publics et qu'aucun code n'est exécuté.

Voilà qui est plus clair que mes explications foireuses...
0
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
9 août 2004 à 17:39
LOL

Bah moi ca me fait bien marrer en tout cas :)

En gros Microttesoft a prévu une fonction permettant de forcer la sortie d'une application ...

Hum a quoi cela peut il bien servir ... AH JE SAIS !!

C'est quand on a décidé de faire planter son application et qu'on veut pouvoir quitter qd même :) lol

Faut dire qu'ils font fort la dedans coté plantage ils en connaissent un rayon :)

Bref, les motivations pour lesquelles ils ont décidés d'intégrer cette fonction reste obscur...

Merci pour l'info :)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
9 août 2004 à 20:41
Ben tiens, je vais rajouter mon grain de sel.

Personnellement, j'ai une sub que j'appelle quand je veux quitter un prog :

Au minimum, j'y met :

sub FinProg()
dim f as form
for each f in forms
unload f
next
End Sub

De plus, chaque fois que j'utilise un objet par
set obj = .......
ou
dim obj as new ....

je fais un set obj = nothing dès que j'en ai plus besoin.

Il y a plusieurs raisons à ça (en terme d'optimisation, de performance, de propreté et de sécurité ) et je n'ai pas la place d'expliquer tout ça mais il me semble que ce sont de bons réflexes à aquérir dès le début.

Cordialement

CanisLupus
0
Bal1n Messages postés 43 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 17 septembre 2008 1
10 août 2004 à 09:57
Bon alors là il faut arreter je vous aimais bien au début mais maintenant ca commence à devenir agacant !
lol :)

Au debut c t end apres c t unloadme et maintenant c carrément un bout de code :)

Enfin bon trève de plaisanterie, je crois que l'on a fait le tour sur comment quitter proprement une appli :big) ! Et pour ça je vous remercie de votre aide, je ne pensais pas qu'il y aurait autant de réaction sur un si ''petit'' pb.

Allez, bonne prog a tous !

Balin
0
Rejoignez-nous