OVH Cloud OVH Cloud

affichage message si pas de donnée

8 réponses
Avatar
rebdran
Bonjour,

J'ai un formulaire dans lequel je rentre un mois et une année pour lancr une
requete de recherche , comment faire pour afficher un message si résultat
vide , au lieu d'afficher une page vide ?

voici le code , je dois avouer que je n'y connais pas grand chose :


Private Sub ferm_formulaire_tot_gal_Click()

If (Me!mois < "01") Or (Me!mois > "12") Then
MsgBox "Le mois saisi est erroné (doit être compris entre 01 et 12)"
Me!mois.SetFocus
Exit Sub
End If
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900 et
2010)"
Me!année.SetFocus
Exit Sub
End If

DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"

End Sub

merci d'avance,

8 réponses

Avatar
Raymond [mvp]
Bonjour.

Soit tu fais un DCount de la requête qui servira au formulaire Cumulcout et
si résultat = 0 ne pas lancer l'ouverture du form Cumulcout .
Soit tu fais un test sur le RecordsetClone.RecordCount à l'ouverture du
formulaire Cumulcout et s'il est à 0 tu quittes le formulaire Cumulcout .

--
@+
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


"rebdran" a écrit dans le message de
news:40eff037$0$24443$
Bonjour,

J'ai un formulaire dans lequel je rentre un mois et une année pour lancr
une

requete de recherche , comment faire pour afficher un message si résultat
vide , au lieu d'afficher une page vide ?

voici le code , je dois avouer que je n'y connais pas grand chose :


Private Sub ferm_formulaire_tot_gal_Click()

If (Me!mois < "01") Or (Me!mois > "12") Then
MsgBox "Le mois saisi est erroné (doit être compris entre 01 et 12)"
Me!mois.SetFocus
Exit Sub
End If
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900 et
2010)"
Me!année.SetFocus
Exit Sub
End If

DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"

End Sub

merci d'avance,




Avatar
rebdran
merci beaucoup pour ces réponses rapides , mais ces commandes se paramètrent
comment ?
peux-tu m'en faire un exemple , je ne connais pas grand chose et dans ce
domaine je n'avance que par mimétisme .
merci d'avance,


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

Soit tu fais un DCount de la requête qui servira au formulaire Cumulcout
et

si résultat = 0 ne pas lancer l'ouverture du form Cumulcout .
Soit tu fais un test sur le RecordsetClone.RecordCount à l'ouverture du
formulaire Cumulcout et s'il est à 0 tu quittes le formulaire Cumulcout .

--
@+
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


"rebdran" a écrit dans le message de
news:40eff037$0$24443$
Bonjour,

J'ai un formulaire dans lequel je rentre un mois et une année pour lancr
une

requete de recherche , comment faire pour afficher un message si
résultat


vide , au lieu d'afficher une page vide ?

voici le code , je dois avouer que je n'y connais pas grand chose :


Private Sub ferm_formulaire_tot_gal_Click()

If (Me!mois < "01") Or (Me!mois > "12") Then
MsgBox "Le mois saisi est erroné (doit être compris entre 01 et 12)"
Me!mois.SetFocus
Exit Sub
End If
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900 et
2010)"
Me!année.SetFocus
Exit Sub
End If

DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"

End Sub

merci d'avance,








Avatar
Raymond [mvp]
1ere solution
Baser ton formulaire Cumulcout sur une requête enregistrée (par exemple
requête1)
la source de ton formulaire est donc requête1. il faut donc tester si cette
requête contient des enregistrements.
dans ton formulaire form_date, tu indiques:
.........
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900 et
2010)"
Me!année.SetFocus
Exit Sub
End If
if Dcount("*", "Requête1") > 0 Then
DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"
Else
Msgbox "Pas d'enregistrements"
End If
End Sub

2e solution
Le formulaire Cumulcout est basé ou non sur une requête enregistrée, dans
l'événement Form_Load tu places:
Private Sub Form_Load()
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements"
' ici la suite, en principe close
End If
End Sub

Tu choisis l'une ou l'autre, les deux ensemble étant superflues.
--
@+
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


"rebdran" a écrit dans le message de
news:40f001cb$0$30273$
merci beaucoup pour ces réponses rapides , mais ces commandes se
paramètrent

comment ?
peux-tu m'en faire un exemple , je ne connais pas grand chose et dans ce
domaine je n'avance que par mimétisme .
merci d'avance,


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

Soit tu fais un DCount de la requête qui servira au formulaire Cumulcout
et

si résultat = 0 ne pas lancer l'ouverture du form Cumulcout .
Soit tu fais un test sur le RecordsetClone.RecordCount à l'ouverture du
formulaire Cumulcout et s'il est à 0 tu quittes le formulaire Cumulcout
.



--
@+
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


"rebdran" a écrit dans le message de
news:40eff037$0$24443$
Bonjour,

J'ai un formulaire dans lequel je rentre un mois et une année pour
lancr



une
requete de recherche , comment faire pour afficher un message si
résultat


vide , au lieu d'afficher une page vide ?

voici le code , je dois avouer que je n'y connais pas grand chose :


Private Sub ferm_formulaire_tot_gal_Click()

If (Me!mois < "01") Or (Me!mois > "12") Then
MsgBox "Le mois saisi est erroné (doit être compris entre 01 et
12)"



Me!mois.SetFocus
Exit Sub
End If
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900
et



2010)"
Me!année.SetFocus
Exit Sub
End If

DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"

End Sub

merci d'avance,












Avatar
rebdran
Grand merci Raymond , vraiment bravo .
c'est la première fois que je poste une demande ici , et voilà 2 heures plus
tard , je repars avec la solution .celà fait 3 jours que je poste la même
demande sur différents forums et que je patauge.

J'ai pris la 2 ème solution : et çà marche .

encore merci et bonne continuation .

Bernard,


"Raymond [mvp]" a écrit dans le message de
news:u0Ke%
1ere solution
Baser ton formulaire Cumulcout sur une requête enregistrée (par exemple
requête1)
la source de ton formulaire est donc requête1. il faut donc tester si
cette

requête contient des enregistrements.
dans ton formulaire form_date, tu indiques:
.........
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900 et
2010)"
Me!année.SetFocus
Exit Sub
End If
if Dcount("*", "Requête1") > 0 Then
DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"
Else
Msgbox "Pas d'enregistrements"
End If
End Sub

2e solution
Le formulaire Cumulcout est basé ou non sur une requête enregistrée, dans
l'événement Form_Load tu places:
Private Sub Form_Load()
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements"
' ici la suite, en principe close
End If
End Sub

Tu choisis l'une ou l'autre, les deux ensemble étant superflues.
--
@+
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


"rebdran" a écrit dans le message de
news:40f001cb$0$30273$
merci beaucoup pour ces réponses rapides , mais ces commandes se
paramètrent

comment ?
peux-tu m'en faire un exemple , je ne connais pas grand chose et dans ce
domaine je n'avance que par mimétisme .
merci d'avance,


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

Soit tu fais un DCount de la requête qui servira au formulaire
Cumulcout



et
si résultat = 0 ne pas lancer l'ouverture du form Cumulcout .
Soit tu fais un test sur le RecordsetClone.RecordCount à l'ouverture
du



formulaire Cumulcout et s'il est à 0 tu quittes le formulaire
Cumulcout



.

--
@+
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


"rebdran" a écrit dans le message de
news:40eff037$0$24443$
Bonjour,

J'ai un formulaire dans lequel je rentre un mois et une année pour
lancr



une
requete de recherche , comment faire pour afficher un message si
résultat


vide , au lieu d'afficher une page vide ?

voici le code , je dois avouer que je n'y connais pas grand chose :


Private Sub ferm_formulaire_tot_gal_Click()

If (Me!mois < "01") Or (Me!mois > "12") Then
MsgBox "Le mois saisi est erroné (doit être compris entre 01 et
12)"



Me!mois.SetFocus
Exit Sub
End If
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre
1900




et
2010)"
Me!année.SetFocus
Exit Sub
End If

DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"

End Sub

merci d'avance,
















Avatar
Raymond [mvp]
c'est la première fois que je poste une demande ici , et voilà 2 heures
plus

tard , je repars avec la solution .celà fait 3 jours que je poste la même
demande sur différents forums et que je patauge.


Il est bien connu et reconnu que c'est ici le meilleur forum. Tant pis pour
les chevilles.

--
@+
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


"rebdran" a écrit dans le message de
news:40f00dd9$0$20358$
Grand merci Raymond , vraiment bravo .
c'est la première fois que je poste une demande ici , et voilà 2 heures
plus

tard , je repars avec la solution .celà fait 3 jours que je poste la même
demande sur différents forums et que je patauge.

J'ai pris la 2 ème solution : et çà marche .

encore merci et bonne continuation .

Bernard,


Avatar
rebdran
Bonjour,

Question subsidiaire:
Y a- t-il possibilité de récupérer Me!mois et Me!année dans mon formulaire
"cumulcout" ? j'ai essayé et il n'a pas l'air de connaitre , j'aurais voulu
ramener la valeur dans mon message pour l'expliciter un peu .

Merci,

Bernard,

"Raymond [mvp]" a écrit dans le message de
news:u0Ke%
1ere solution
Baser ton formulaire Cumulcout sur une requête enregistrée (par exemple
requête1)
la source de ton formulaire est donc requête1. il faut donc tester si
cette

requête contient des enregistrements.
dans ton formulaire form_date, tu indiques:
.........
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900 et
2010)"
Me!année.SetFocus
Exit Sub
End If
if Dcount("*", "Requête1") > 0 Then
DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"
Else
Msgbox "Pas d'enregistrements"
End If
End Sub

2e solution
Le formulaire Cumulcout est basé ou non sur une requête enregistrée, dans
l'événement Form_Load tu places:
Private Sub Form_Load()
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements"
' ici la suite, en principe close
End If
End Sub

Tu choisis l'une ou l'autre, les deux ensemble étant superflues.
--
@+
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


"rebdran" a écrit dans le message de
news:40f001cb$0$30273$
merci beaucoup pour ces réponses rapides , mais ces commandes se
paramètrent

comment ?
peux-tu m'en faire un exemple , je ne connais pas grand chose et dans ce
domaine je n'avance que par mimétisme .
merci d'avance,


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

Soit tu fais un DCount de la requête qui servira au formulaire
Cumulcout



et
si résultat = 0 ne pas lancer l'ouverture du form Cumulcout .
Soit tu fais un test sur le RecordsetClone.RecordCount à l'ouverture
du



formulaire Cumulcout et s'il est à 0 tu quittes le formulaire
Cumulcout



.

--
@+
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


"rebdran" a écrit dans le message de
news:40eff037$0$24443$
Bonjour,

J'ai un formulaire dans lequel je rentre un mois et une année pour
lancr



une
requete de recherche , comment faire pour afficher un message si
résultat


vide , au lieu d'afficher une page vide ?

voici le code , je dois avouer que je n'y connais pas grand chose :


Private Sub ferm_formulaire_tot_gal_Click()

If (Me!mois < "01") Or (Me!mois > "12") Then
MsgBox "Le mois saisi est erroné (doit être compris entre 01 et
12)"



Me!mois.SetFocus
Exit Sub
End If
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre
1900




et
2010)"
Me!année.SetFocus
Exit Sub
End If

DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"

End Sub

merci d'avance,
















Avatar
Eric
Bonjour,

Sur le formulaire CumulCout, dans la procédure Load, tu changes le
message comme suit, puisque tu as opté pour la 2eme solution proposée par
Raymond :

Private Sub Form_Load()
If CurrentProject.AllForms("form_date").IsLoaded Then
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements pour le mois :" & forms!form_date!Mois
& " de l'année : " & forms!form_date!Année
DoCmd.Close acForm, Me.Name
End If
End If
End Sub

Ne sachant pas comment tu manipules ton formulaire CumulCout et s'il est
toujours appelé par form_date, j'ai mis un test pour savoir au chargement
si le formulaire form_date est ouvert pour éviter un message d'erreur. Tu
peux éventuellement le supprimer si ce formulaire dans tous les autres
cas renvoie des enregistrements.

A+
Eric

"rebdran" écrivait
news:40f102e1$0$20349$:

Bonjour,

Question subsidiaire:
Y a- t-il possibilité de récupérer Me!mois et Me!année dans mon
formulaire "cumulcout" ? j'ai essayé et il n'a pas l'air de connaitre
, j'aurais voulu ramener la valeur dans mon message pour l'expliciter
un peu .

Merci,

Bernard,

"Raymond [mvp]" a écrit dans le message
de news:u0Ke%
1ere solution
Baser ton formulaire Cumulcout sur une requête enregistrée (par
exemple requête1)
la source de ton formulaire est donc requête1. il faut donc tester si
cette

requête contient des enregistrements.
dans ton formulaire form_date, tu indiques:
.........
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900
et
2010)"
Me!année.SetFocus
Exit Sub
End If
if Dcount("*", "Requête1") > 0 Then
DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"
Else
Msgbox "Pas d'enregistrements"
End If
End Sub

2e solution
Le formulaire Cumulcout est basé ou non sur une requête enregistrée,
dans l'événement Form_Load tu places:
Private Sub Form_Load()
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements"
' ici la suite, en principe close
End If
End Sub

Tu choisis l'une ou l'autre, les deux ensemble étant superflues.
--
@+
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






Avatar
rebdran
Merci ,c'est parfait.


"Eric" a écrit dans le message de
news:
Bonjour,

Sur le formulaire CumulCout, dans la procédure Load, tu changes le
message comme suit, puisque tu as opté pour la 2eme solution proposée par
Raymond :

Private Sub Form_Load()
If CurrentProject.AllForms("form_date").IsLoaded Then
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements pour le mois :" & forms!form_date!Mois
& " de l'année : " & forms!form_date!Année
DoCmd.Close acForm, Me.Name
End If
End If
End Sub

Ne sachant pas comment tu manipules ton formulaire CumulCout et s'il est
toujours appelé par form_date, j'ai mis un test pour savoir au chargement
si le formulaire form_date est ouvert pour éviter un message d'erreur. Tu
peux éventuellement le supprimer si ce formulaire dans tous les autres
cas renvoie des enregistrements.

A+
Eric

"rebdran" écrivait
news:40f102e1$0$20349$:

Bonjour,

Question subsidiaire:
Y a- t-il possibilité de récupérer Me!mois et Me!année dans mon
formulaire "cumulcout" ? j'ai essayé et il n'a pas l'air de connaitre
, j'aurais voulu ramener la valeur dans mon message pour l'expliciter
un peu .

Merci,

Bernard,

"Raymond [mvp]" a écrit dans le message
de news:u0Ke%
1ere solution
Baser ton formulaire Cumulcout sur une requête enregistrée (par
exemple requête1)
la source de ton formulaire est donc requête1. il faut donc tester si
cette

requête contient des enregistrements.
dans ton formulaire form_date, tu indiques:
.........
If (Me!année < "1900") Or (Me!année > "2010") Then
MsgBox "L'année saisie est erronée (doit être comprise entre 1900
et
2010)"
Me!année.SetFocus
Exit Sub
End If
if Dcount("*", "Requête1") > 0 Then
DoCmd.OpenForm "Cumulcout"
DoCmd.Close acForm, "form_date"
Else
Msgbox "Pas d'enregistrements"
End If
End Sub

2e solution
Le formulaire Cumulcout est basé ou non sur une requête enregistrée,
dans l'événement Form_Load tu places:
Private Sub Form_Load()
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "pas d'enregistrements"
' ici la suite, en principe close
End If
End Sub

Tu choisis l'une ou l'autre, les deux ensemble étant superflues.
--
@+
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