OVH Cloud OVH Cloud

affichage ou non dans un form.

20 réponses
Avatar
whitehell
Bonjour tout le monde,

Je travail sous Access 2000 et je rencontre un soucis de mise en page
formulaire.
Comment afficher un champ dans un formu que s'il est rempli dans la
table?? S'il l'enregistrement est vide dans la table, je veux que rien
ne s'affiche dans mon form.
Merci par avance pour votre aide et bonne continuation.

Cordialement.

Whitehell.

10 réponses

1 2
Avatar
Gilbert
Erreur, le Clone ne sert à rien

Me.Visible = (Me.Recordset.RecordCount <> 0)

Gilbert

"Gilbert" a écrit dans le message de
news:
Bonjour

Dans ton sous-formulaire tu utilises:

Private Sub Form_Current()
Me.Visible = (Me.RecordsetClone.RecordCount <> 0)
End Sub

Gilbert

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

Ca marche parfaitement! Merci beacoup pour ton aide, mon formulaire
commence enfin à ressembler à ce que je souhaite.
Cependant je cherche à faire la même manipulation pour un sous
formulaire. En effet, j'ai un formulaire qui possède un sous
formulaire et pour certaines pièces choisies dans mon formulaire
principal, il n'existe pas d'informations dans le sous formulaires. Je
voudrais donc que ce sous formulaire ne s'affiche pas s'il est vide...
Si tu as des pistes de recherche, fais le moi savoir!

Merci encore

bonne continuation

Whitehell




Avatar
whitehell
bonjour Gilbert,

Tout fonctionne parfaitement!
Merci pour tout!

Whitehell
Avatar
whitehell
Rebonjour,

Je viens de me rendre compte d'un soucis...
Tout s'affiche correctement pour mes diverses pièces. Cependant
lorsque je veux ajouter un nouvel enregistrement via mon dit
formulaire, les champs cachés (si vides) et les sous-formulaires
cachés (si vides), ne s'affichent pas et je ne peux donc pas rentrer
de nouvelles informations...
Y'a-t-il donc une manip a faire afin de rendre cette fonction
possible??

Whitehell
Avatar
Gilbert
Bonjour,

Pour savoir si tu es sur un nouvel enregistrement, il faut tester
Me.NewRecord

Dans ton formulaire
Private Sub Form_Current()
Me!RefPSA.Visible = Not IsNull(Me!RefPSA) Or Me.NewRecord
End Sub

Dans ton sous-formulaire
Private Sub Form_Current()
Me.Visible = Me.Recordset.RecordCount <> 0 Or Me.Parent.NewRecord
End Sub

Gilbert


"whitehell" a écrit dans le message de
news:
Rebonjour,

Je viens de me rendre compte d'un soucis...
Tout s'affiche correctement pour mes diverses pièces. Cependant
lorsque je veux ajouter un nouvel enregistrement via mon dit
formulaire, les champs cachés (si vides) et les sous-formulaires
cachés (si vides), ne s'affichent pas et je ne peux donc pas rentrer
de nouvelles informations...
Y'a-t-il donc une manip a faire afin de rendre cette fonction
possible??

Whitehell
Avatar
whitehell
Une fois de plus merci pour ta rapidité à répondre à mes questions.
Le code Or Newrecord fonctionne lors de l'ajout d'un nouvel
enregistrement dans mon formulaire principal. Les champs masqués
s'affichent correctement et je peux rentrer mes données.
Cependant, pour les sous formulaires (qui sont au nombre de quatre dans
mon form principal), ceux ci s'affichent correctement lors d'un nouvel
enregistrement dans ce formulaire principal, cependant lorsque je veux
ajouter des enregistrements dans les sous form liés, un message
d'erreur apparaît:

Erreur d'execution '2165':
Impossible de masquer le contrôle actif

Si je n'en tiens pas compte (en cliquant sur "fin") je peux entrer le
nouvel enregistrement dans le dit sous-form, cependant les trois autres
sous-form disparaissent...

Aurais-tu une solution à ce soucis?

Merci

Whitehell
Avatar
whitehell
J'ai essayé de changer le code.
En remplaçant "Or Me.Parent.NewRecord" par "Or Me.Newrecord", ça
fonctionne...
Je ne comprends pas vraiment pourquoi mais le principal est que ça
marche.
Merci

Whitehell
Avatar
whitehell
Ne tiens pas compte de mon dernier message, finalement ça ne
fonctionne absolument pas...

Whitehell
Avatar
whitehell
Ne tiens pas compte de mon dernier message, finalement ça ne
fonctionne absolument pas...

Whitehell
Avatar
Gilbert
Lorsque tu passes de ton formulaire principal à l'un des sous-formulaires,
l'enregistrement est sauvegardé automatiquement.
Donc Me.Parent.NewRecord devient faux et le controle doit être masqué.
Mais comme il est actif, il est impossible de le faire.

Je pense qu'il faut revoir la façon d'afficher ou non tes sous-formulaires.
Peut-être les afficher/masquer à partir du formulaire principal avec un
bouton de commande qui valide la saisie.

De toutes façons, je trouve dommage (voire anormal) de ne plus pouvoir
modifier une saisie. Que fais-tu si une erreur de saisie a été faite dans un
des contrôles ou sous-formulaires masqués?


Gilbert

"whitehell" a écrit dans le message de
news:
Une fois de plus merci pour ta rapidité à répondre à mes questions.
Le code Or Newrecord fonctionne lors de l'ajout d'un nouvel
enregistrement dans mon formulaire principal. Les champs masqués
s'affichent correctement et je peux rentrer mes données.
Cependant, pour les sous formulaires (qui sont au nombre de quatre dans
mon form principal), ceux ci s'affichent correctement lors d'un nouvel
enregistrement dans ce formulaire principal, cependant lorsque je veux
ajouter des enregistrements dans les sous form liés, un message
d'erreur apparaît:

Erreur d'execution '2165':
Impossible de masquer le contrôle actif

Si je n'en tiens pas compte (en cliquant sur "fin") je peux entrer le
nouvel enregistrement dans le dit sous-form, cependant les trois autres
sous-form disparaissent...

Aurais-tu une solution à ce soucis?

Merci

Whitehell
Avatar
whitehell
Tu as raison, je voulais simplement essayer d'améliorer ma mise en
page car je me retrouve avec un formulaire qui possède plusieurs
sous-formulaires assez souvent vides...
Je vais suivre ton conseil et privilégier la fonctionnalité à
l'esthétique.
En tout cas merci pour tout!


Whitehell
1 2