Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée", vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée", vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de vérifier que certain
champ du formulaire on bien était renseigné avant de sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et la Sub
Form_Unload ne s'execute pas. Je cherche donc une astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse s'exécuter
tranquilement. Le plus simple a mon sens serait de détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas executer
Form_BeforeUpdate a ce moment là. Mais à priori personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture pour en créer une à
moi mais c'est une solution qui ne me plait vraiment pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée", vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée", vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de vérifier que certain
champ du formulaire on bien était renseigné avant de sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et la Sub
Form_Unload ne s'execute pas. Je cherche donc une astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse s'exécuter
tranquilement. Le plus simple a mon sens serait de détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas executer
Form_BeforeUpdate a ce moment là. Mais à priori personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture pour en créer une à
moi mais c'est une solution qui ne me plait vraiment pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée", vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée", vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de vérifier que certain
champ du formulaire on bien était renseigné avant de sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et la Sub
Form_Unload ne s'execute pas. Je cherche donc une astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse s'exécuter
tranquilement. Le plus simple a mon sens serait de détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas executer
Form_BeforeUpdate a ce moment là. Mais à priori personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture pour en créer une à
moi mais c'est une solution qui ne me plait vraiment pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" <no-mail@no-provider.com> a écrit dans le message
de
news:mesnews.22327d46.1c6fa956.35.12989@noprovider.com...
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" <no-mail@no-provider.com> a écrit dans le message
de
news:mesnews.22327d46.1c6fa956.35.12989@noprovider.com...
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" <no-mail@no-provider.com> a écrit dans le message
de
news:mesnews.22327d46.1c6fa956.35.12989@noprovider.com...
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" <no-mail@no-provider.com> a écrit dans le message
de
news:mesnews.22327d46.1c6fa956.35.12989@noprovider.com...
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" <no-mail@no-provider.com> a écrit dans le message
de
news:mesnews.22327d46.1c6fa956.35.12989@noprovider.com...
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" <no-mail@no-provider.com> a écrit dans le message
de
news:mesnews.22327d46.1c6fa956.35.12989@noprovider.com...
Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.
-----Message d'origine-----
Bonjour.
je ne vois pas pourquoi tu places ta vérif également
dans le unload car de
toute façon la procédure passe par beforeupdate et
afterupdate avant de
passer dans le unload. et comme tout se passe dans le
beforeupdate, dans le
unload tu ne devrais pas avoir de modif en cours.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Ryo" a écrit dans le message
de
news:Salut!
Voici 3 codes qui sont dans un formulaire:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Teste si les champs sont bien remplis
Cancel = VerifChamp
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Teste si les champs sont bien remplis et propose
d'annuler la saisie
si non
If VerifChamp Then
If MsgBox("Tout les champs de ce formulaire
n'ont pas été
saisie correctement." & vbLf & "Voulez vous annuler
cette saisie ?",
vbYesNo + vbExclamation, "Erreur de saisie") = vbYes
Then
DoCmd.RunCommand acCmdUndo
Else
Cancel = VerifChamp
End If
End If
End Sub
Private Function VerifChamp() As Integer
'Teste les champs
VerifChamp = False
If IsNull(Me.Texte_Date) Then
MsgBox "La date doit être renseignée",
vbExclamation, "Erreur
de saisie..."
Me.Texte_Date.SetFocus
GoTo Erreur
End If
If IsNull(Me.Combo_Personne) Then
MsgBox "La personne doit être renseignée",
vbExclamation,
"Erreur de saisie..."
Me.Combo_Personne.SetFocus
GoTo Erreur
End If
Exit Function
Erreur:
VerifChamp = True
End Function
Vous l'aurez compris le but de ces code est de
vérifier que certain
champ du formulaire on bien était renseigné avant de
sauvegarder
l'enregistrement.
L'ennui c'est la fermeture du formulaire, admettons
que je n'ai pas
remplis la date et que je ferme avec la croix. La Sub
Form_BeforeUpdate
s'éxecute avant la Sub Form_Unload et j'ai une
erreur 'Impossible
d'enregistrer cet enregistrement pour l'instant...' et
la Sub
Form_Unload ne s'execute pas. Je cherche donc une
astuce pour ne pas
avoir ce message et que ma Sub Form_Unload puisse
s'exécuter
tranquilement. Le plus simple a mon sens serait de
détecter qu'on a
cliqué sur la croix de fermeture [X] et de ne pas
executer
Form_BeforeUpdate a ce moment là. Mais à priori
personne n'a jamais
réussit a trouver comment détecter qu'on a cliquer sur
cette fichu
croix.
J'en appelle donc à votre expérience voir si quelqu'un
sait comment
contourner ce problème.
J'ai déjà penser à suprimmer la croix de fermeture
pour en créer une à
moi mais c'est une solution qui ne me plait vraiment
pas.
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
.