Vba access

yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005 - 9 juin 2004 à 10:39
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 - 9 juin 2004 à 17:08
Bonjour,

J'ai créé une base de donnée dans laquelle je voudrais au moment de la fermeture d'un formulaire par l'utilisateur(par un click sur la croix), vérifier s'il est vraiment sûr de vouloir quitter, et si la réponse est non, d'empêcher la fermeture...

est-ce que l'instruction docmd.cancelevent peut servir à cela?
et sinon comment faire?

Merci 8-)
yaf_yaf

19 réponses

cs_hasen Messages postés 246 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 29 décembre 2008 2
9 juin 2004 à 12:07
Pour cela, met le code suivant dans l'evenement sur clique :

dim num as integer

num = MsgBox("Vous allez faire qq chose. Cliquer sur oui pour confirmer ou non pour annuler.", vbInformation + vbYesNo, "Microsoft Press")
Select Case num
Case vbYes
'Met ici ton code lorsqu'on clique sur oui(dans ton cas rien)
Case vbNo
'Met ici ton code lorsqu'on clique sur non(dans ton cas le code pour la fermeture)
End select

Ca dvrait marcher sans pb, si yen a di le moi!

Hasen
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 13:02
merci
ton code me plais mais il ne répond pas à tout car ce qui me manque c le code lorsque la personne va cliquer sur non:
pour empêcher la fermeture.....
Sinon, je teste la chose dans form_close car c'est la fonction qui se lance lorsque l'on appuie sur la croix mais peut-être que je m'y prend mal....

yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 13:38
Tiens Yaf_Yaf :)

Voilà ce qu'il faut mettre dans l'évènement QueryClose :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Dim rep As String

rep = MsgBox("voulez vous vraiment quitter ?", vbYesNo)

If rep = vbNo Then
Cancel = True
Else
MsgBox "au revoir"
End If

End Sub


Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 13:54
Merci Fanny
cancel = true tout simplement....
J'ai l'art de poser des questions qd les réponse sont toutes bêtes
lol
avec ca il me reste plus qu'à commenter mon travail.....c d'un chi.....surtout en allemand
8-)
yaf_yaf
0

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

Posez votre question
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 14:07
euh, le compilateur aime pas
form_close(cancel as integer,closemode as integer)
j'ai essayé en mettant cancel as boolean au lieu de cancel as integer car de tout manière c un boolean si je le met à true et il me sort un message d'erreure des que j'essaie d'ouvrir le formulaire...
je capte queud...tout ce que je sais c que c cette ligne qui pose problème
?????
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 14:19
Lol :)

Tu sélectionnes ta UserForm dans la fenêtre de code et de l'autre côté (au niveau des évènements), tu choisis :
QUERYCLOSE ou QUERYUNLOAD :)

Et là, tu mets le code que tu veux ;)

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 14:40
j'veux bien mais mon formulaire n'a pas d'évênements queryclose ni queryunload, uniquement close et unload... :sad)

yaf_yaf
0
cs_lhomme Messages postés 27 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 21 juillet 2004
9 juin 2004 à 14:59
toi aussi tu bosses en allemand ? a c est la galere pour trouver les fonctions .....

Jai quasiment fini ma base mais il me reste plus qu a gerer un systeme de remplissage et dupdate de la base garce a des fichiers excel.

Le probleme est que j ai un champs qui possede plusieurs valeurs separees par des points virgule. Je voudrai transformer ce champ en un tableau ayant autant de ligne que de valeur en detectant les differentes valeurs grace au symbole de sépartion qu est la virgule!!

ex 1234;4567;7891; => 1234
4567
7890

Je suis quaiment sur que ca existe mais je connais pas le nom ...

Si tu sais Merci
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 15:04
Pour toi lhomme il faut que tu fasses :

Dim tableau() As Integer
tableau = Split(tavariable,";")

Yaf :
Il te dit quoi comme évènement qui peut ressembler à une méthode queryclose ?

Fanny
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 15:16
Yaf_yaf,

as-tu essayé le on_unload ? ou le unload ? (comme évènements pour ton formulaire)

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 15:22
avec unload, le cancel il veut bien mais le reste il fait pas....
:sad)
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 15:32
Comment ça le cancel il veut bien mais le reste il fait pas ?
Essaies avec le close alors :big) .

(j'ai cherché sur le net mais pour l'instant je ne trouve pas :sad) )

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 15:36
disons qu'avec unload,je peux passer en paramètre cancel mais après il ne vas pas dans cette fonction lorsque se fait la fermeture,....
j'essaie de voir comment à partir de close lui dire d'aller dans unload .... :clown)
yaf_yaf
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
9 juin 2004 à 15:43
bon, de close je peux aller dans unload à condition de donner à cancel une valeur.....le pb c que cancel=true, il semble pas savoir que ca veut dire annuler la fermeture....car il ferme alors que je clique sur non...
grrr 8-)
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 15:55
Lol on va y arriver !!!!

Tu peux m'écrire exactement ce qu'il y a lorsque tu cliques sur les méthodes Close et Unload du formulaire ?
Sans que tu y aies écrit quelquechose :)

Je veux juste voir ce qu'il passe en paramètres :
Du genre :

Private Sub form_Close(CE QU'IL Y A ICI)

Fanny
0
cs_hasen Messages postés 246 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 29 décembre 2008 2
9 juin 2004 à 16:04
je ne suis pas sur d'avoir tout suivi, mais essai ca :

Private Sub bQuitter_Click()

dim num as integer

num = MsgBox("Etes-vous sur de vouloir quitter?", vbInformation + vbYesNo, "Microsoft Press")
Select Case num
Case vbYes
docmd.close
Case vbNo
exit sub
End select

end sub

Si tu veux seulement quitter ton formulaire lorsque l'utilisateur clique sur oui et ne rien faire lorsqu'il clique sur non, ca devrait marcher!
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 16:12
Non Hasen, il ne veut pas créer un bouton quitter, mais utiliser le bouton de fermeture du formulaire (la petite croix en haut à droite) :) .
C'est d'ailleurs pour ça que c'est la galère, pourtant sous Excel c'est simple comme tout ... grrr de Access !!!

Fanny
0
cs_hasen Messages postés 246 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 29 décembre 2008 2
9 juin 2004 à 16:26
je viens d'essayer le code suivant chez moi sous access et ca marche du feu de dieu

Private Sub Form_Unload(Cancel As Integer)

Dim rep As String

rep = MsgBox("voulez vous vraiment quitter ?", vbYesNo)

If rep = vbNo Then
Cancel = True
Else
MsgBox "au revoir"
End If

End Sub

pourtant c a peu de chose pret le code que tu a proposé
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
9 juin 2004 à 17:08
Oui c'est bizarre alors ...
Moi j'avais testé sous Excel donc ce n'était pas le bon évènement ...
Donc avec ce que tu as écrit Yafisab devrait y parvenir ;)

Fanny
0