OVH Cloud OVH Cloud

Absence d'enregistrement

4 réponses
Avatar
Antoine
Bonjour,

J'ai un bouton qui permet d'ouvrir un formulaire selon du=20
texte que j'entre =E0 la main. J'aimerais que s'il n'y a pas=20
d'enregistrement dans le formulaire =E0 ouvrir, qu'il me le=20
dise dans une petite fen=EAtre "pop-up" au lieu d'afficher=20
un formulaire vide. Mon code est en VBA et ne peut pas=20
=EAtre en autre chose(pas de macro).

Je sais que c'est une question usuelle, et que je l'ai=20
d=E9ja vue en quelquepart, mais je ne sais o=F9 et je ne=20
retrouve pas l'endroit.

Donc si vous voulez me dire comment ou o=F9 aller chercher=20
l'information,
Merci,
Antoine

4 réponses

Avatar
Arnaud [lwa]
Bonjour,

if dcount("*","latablesourceduformulaire") > 0 then
docmd.openform "tonformulaire
else
msgbox "pas de donnnées"
end if


latablesourceduformulaire ou larequetesourceduformulaire
ça fonctionne pareil.

si la requête source du formulaire est interne au formulaire,
on peut utiliser un troisième argument :
if dcount ("*","latable","lechamp = 'critère'") > 0

la syntaxe dépendra de l'endroit où on prend les valeurs à mettre en critères
et du format des champs de la table sur lesquels on voudra vérifier les critères.

--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------

| Bonjour,
|
| J'ai un bouton qui permet d'ouvrir un formulaire selon du
| texte que j'entre à la main. J'aimerais que s'il n'y a pas
| d'enregistrement dans le formulaire à ouvrir, qu'il me le
| dise dans une petite fenêtre "pop-up" au lieu d'afficher
| un formulaire vide. Mon code est en VBA et ne peut pas
| être en autre chose(pas de macro).
|
| Je sais que c'est une question usuelle, et que je l'ai
| déja vue en quelquepart, mais je ne sais où et je ne
| retrouve pas l'endroit.
|
| Donc si vous voulez me dire comment ou où aller chercher
| l'information,
| Merci,
| Antoine
Avatar
Antoine
Salut!

Merci pour ton aide.

Cependant, j'ai fait le code que tu m'as conseillé, mais
la fenêtre s'est ouverte quand même, et elle était vide.
Le formulaire qui s'ouvre contient des informations d'une
table importée. Le bouton de commande que j'ai fait
s'ouvrir les enregistrements entre un champ qui est pareil
à un autre dans le second formulaire.
Je ne sais pas si ça change quelquechose...
Vu que ça fait comme un filtre, peut-être que la fonction
doit changer?

Merci,
Antoine
Avatar
Eric
Bonjour Antoine,

Sur l'évènement Sur Ouverture du formulaire appelé ( celui qui doit
afficher les résultats de ton filtrage) tu mets la procédure suivante:

Private Sub Form_Open(Cancel As Integer)
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "Aucun enregistrement", vbInformation
DoCmd.Close acForm, Me.Name
End If
End Sub

A+
Eric

"Antoine" écrivait news:314f01c470f0
$70d66fe0$:

Salut!

Merci pour ton aide.

Cependant, j'ai fait le code que tu m'as conseillé, mais
la fenêtre s'est ouverte quand même, et elle était vide.
Le formulaire qui s'ouvre contient des informations d'une
table importée. Le bouton de commande que j'ai fait
s'ouvrir les enregistrements entre un champ qui est pareil
à un autre dans le second formulaire.
Je ne sais pas si ça change quelquechose...
Vu que ça fait comme un filtre, peut-être que la fonction
doit changer?

Merci,
Antoine



Avatar
Arnaud [lwa]
Bonjour,

|
| Cependant, j'ai fait le code que tu m'as conseillé, mais
| la fenêtre s'est ouverte quand même, et elle était vide.

Quand j'écris ceci

if dcount("*","latable") > 0 then
docmd.openform "tonformulaire"
else
msgbox "pas de donnnées"
end if

et si tu le mets dans l'événement sur Clic d'un bouton (d'un autre formulaire, bien sûr),
le code compte le nombre d'enregistrements et dit :

si > 0 j'ouvre
si pas > 0 (donc =0 ...) je mets une boite de dialogue.

Donc tu as du te tromper car si dcount = 0, on ne dit pas d'ouvrir le formulaire.

Personnellement, je préfère lancer l'ouverture d'un formulaire lorsque je suis sûr
qu'il ne comporte pas d'enregistrements, mais la solution d Eric fonctionne tout aussi bien.


--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------