OVH Cloud OVH Cloud

Affichage sous-formulaire

8 réponses
Avatar
david.raoult
Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai r=E9ussi
jusque l=E0 =E0 r=E9gler tous mes probl=E8mes via internet et un livre
sp=E9cial Access mais la je ne trouve pas de solution...
J'ai cr=E9=E9 une base de donn=E9e =E0 5 tables. Une table est li=E9e aux
quatres autres... J'ai cr=E9=E9 un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de m=EAme.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des donn=E9es.

Merci par avance pour votre aide

whitehell

8 réponses

Avatar
ze_titi
Bonjour,

C'est juste un piste à creuser puisque je ne l'ai pas testée.
Peut-être qu'en utlisant la propriété Recordcount et Visible de tes
sous-formulaires tu devrais t'en sortir.

If tonSousFormulaire.recordCount=0 then tonSousFormulaire.visibleúlse

Non testé donc non garanti...

En espérant que ça t'aidera...
--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée aux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell




Avatar
Warrio
Salut!
Ton explication du problème n'est pas si claire. qu'est-ce que tes sous
formulaire affiche quand il n'y a pas de données?

1. Si c'est un enregistrement vide, alors c'est parce que:
Access affiche tes sous formulaire parce qu'il laisse la possibilité à la
saisie d'un nouvel enregistrement. ce qui peut etre utile selon les cas. si
tu ne veux pas laisser cette possibilité et afficher seulement ceux qui sont
déjà existants, alors tu doit seter la propriété de ton sous formulaire
"Allow Addition" (en francais, ca doit etre permettre l'ajout...) à Non

2. Si ce sont des enregistrements sont affichés dans ton sous formulaire
mais ne devraient pas y figurer, alors tu dois regarder au niveau du
contrôle du sous formulaire (celui dans la fenêtre mère), vas sur ses
propriété et paramètre les jointure entre la fenêtre mère et le sous
formulaire, pour que ca les données suivent celle de la fenêtre mère


a écrit dans le message de news:

Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée aux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell
Avatar
whitehell
Salut!

Tout d'abord merci pour ta réponse.
Je vais essayer de détailler mon problème:

Imagine que j'ai une liste de référence que j'appel A, viens ensuite
une liste de référence client correspondante B ainsi qu'une liste de
concurrent correspondante C (je me limite à trois tables pour
l'explication de mon problème).
La liste A est entièrement remplie car à chaque référence de cette
liste correspond une référence client et/ou concurrent. Seulement,
pour certaine référence de la liste A, il n'ya pas de référence
correspondante dans la liste B et/ou C.
A partir de là, lors de la création de mon formulaire de recherche à
partir de la liste A, j'ai créé deux sous formulaires correspondants
aux listes B et C.
Ce que je voudrais donc c'est que ces sous formulaires s'affichent dans
le formulaire principal simplement s'il contienne des enregistrements
correspondants à ma référence de la liste A.
J'espère que cette explication est plus claire...
J'ai essayé de résoudre le problème avec ta solution 1 cependant je
ne trouve pas la fonction "permettre l'ajout" dans mes propriétés de
sous formulaires. Peut-être est -ce parce que je possède la version
2000 d'ACCESS...

Merci pour l'intérêt que tuportes à ma demande.

Cordialement

Whitehell

Warrio wrote:
Salut!
Ton explication du problème n'est pas si claire. qu'est-ce que tes sous
formulaire affiche quand il n'y a pas de données?

1. Si c'est un enregistrement vide, alors c'est parce que:
Access affiche tes sous formulaire parce qu'il laisse la possibilité à la
saisie d'un nouvel enregistrement. ce qui peut etre utile selon les cas. si
tu ne veux pas laisser cette possibilité et afficher seulement ceux qui sont
déjà existants, alors tu doit seter la propriété de ton sous form ulaire
"Allow Addition" (en francais, ca doit etre permettre l'ajout...) à Non

2. Si ce sont des enregistrements sont affichés dans ton sous formulaire
mais ne devraient pas y figurer, alors tu dois regarder au niveau du
contrôle du sous formulaire (celui dans la fenêtre mère), vas sur s es
propriété et paramètre les jointure entre la fenêtre mère et le sous
formulaire, pour que ca les données suivent celle de la fenêtre mère


a écrit dans le message de news:

Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée aux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell


Avatar
whitehell
Rebonjour,

Tout d'abord merci pour ta réponse. Je ne vois pas vraiment comment
faire pour appliquer ta solution pour le moment mais je planche sur le
sujet. Juste une précision cependant, j'ai ACCESS 2000 en francais et
je ne vois pas à quoi correspond ta propriété "RecordCount" dans mes
champs de propriété de sous formulaires. De plus ou puis-je
programmer la phrase que tu m'as donnée? Pour moi le menu de
propriété des sous-formulaires est ouvert avec le clic droit de la
souris en mode création de formulaire et ce menu ne permet d'entrer de
telle phrase de programmation mais simplement de faire des choix (par
exemple pour la propriété "visible", on choisit "oui" ou "non".
Comme tu peux le remarque, quand je dis que je suis novice dans
l'utilisation de ce logiciel, ce n'est pas un blague!!

Merci

Cordialement

Whitehell


ze_titi wrote:
Bonjour,

C'est juste un piste à creuser puisque je ne l'ai pas testée.
Peut-être qu'en utlisant la propriété Recordcount et Visible de tes
sous-formulaires tu devrais t'en sortir.

If tonSousFormulaire.recordCount=0 then tonSousFormulaire.visibleúl se

Non testé donc non garanti...

En espérant que ça t'aidera...
--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée a ux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell






Avatar
Warrio
J'ai la meme version d'Access que toi, mais en anglais
que'elle sont les propiétés que tu as dans l'anglet Données des propriétés
de ton subform?

je pourrais peut-etre alors te donner la traduction de "Allow Addition"


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

Salut!

Tout d'abord merci pour ta réponse.
Je vais essayer de détailler mon problème:

Imagine que j'ai une liste de référence que j'appel A, viens ensuite
une liste de référence client correspondante B ainsi qu'une liste de
concurrent correspondante C (je me limite à trois tables pour
l'explication de mon problème).
La liste A est entièrement remplie car à chaque référence de cette
liste correspond une référence client et/ou concurrent. Seulement,
pour certaine référence de la liste A, il n'ya pas de référence
correspondante dans la liste B et/ou C.
A partir de là, lors de la création de mon formulaire de recherche à
partir de la liste A, j'ai créé deux sous formulaires correspondants
aux listes B et C.
Ce que je voudrais donc c'est que ces sous formulaires s'affichent dans
le formulaire principal simplement s'il contienne des enregistrements
correspondants à ma référence de la liste A.
J'espère que cette explication est plus claire...
J'ai essayé de résoudre le problème avec ta solution 1 cependant je
ne trouve pas la fonction "permettre l'ajout" dans mes propriétés de
sous formulaires. Peut-être est -ce parce que je possède la version
2000 d'ACCESS...

Merci pour l'intérêt que tuportes à ma demande.

Cordialement

Whitehell

Warrio wrote:
Salut!
Ton explication du problème n'est pas si claire. qu'est-ce que tes sous
formulaire affiche quand il n'y a pas de données?

1. Si c'est un enregistrement vide, alors c'est parce que:
Access affiche tes sous formulaire parce qu'il laisse la possibilité à la
saisie d'un nouvel enregistrement. ce qui peut etre utile selon les cas.
si
tu ne veux pas laisser cette possibilité et afficher seulement ceux qui
sont
déjà existants, alors tu doit seter la propriété de ton sous formulaire
"Allow Addition" (en francais, ca doit etre permettre l'ajout...) à Non

2. Si ce sont des enregistrements sont affichés dans ton sous formulaire
mais ne devraient pas y figurer, alors tu dois regarder au niveau du
contrôle du sous formulaire (celui dans la fenêtre mère), vas sur ses
propriété et paramètre les jointure entre la fenêtre mère et le sous
formulaire, pour que ca les données suivent celle de la fenêtre mère


a écrit dans le message de news:

Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée aux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell


Avatar
whitehell
Voilà les propriétés que j'ai dans l'onglet Données de mon
sous-formulaire:
Objet source
champs fils
champs père
activé
vérouillé

Je ne sais pas si la solution à mon problème se trouve dans cet
onglet sachant ke si je dis oui à "verouillé", je ne peux
effectivement plus rentrer des enregistrements mais le sous-formulaire
s'affiche même s'il est vide... Quand à la propriété "activé", ce
n'est pas non plus une solution...



J'ai la meme version d'Access que toi, mais en anglais
que'elle sont les propiétés que tu as dans l'anglet Données des pro priétés
de ton subform?

je pourrais peut-etre alors te donner la traduction de "Allow Addition"


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

Salut!

Tout d'abord merci pour ta réponse.
Je vais essayer de détailler mon problème:

Imagine que j'ai une liste de référence que j'appel A, viens ensuite
une liste de référence client correspondante B ainsi qu'une liste de
concurrent correspondante C (je me limite à trois tables pour
l'explication de mon problème).
La liste A est entièrement remplie car à chaque référence de cette
liste correspond une référence client et/ou concurrent. Seulement,
pour certaine référence de la liste A, il n'ya pas de référence
correspondante dans la liste B et/ou C.
A partir de là, lors de la création de mon formulaire de recherche à
partir de la liste A, j'ai créé deux sous formulaires correspondants
aux listes B et C.
Ce que je voudrais donc c'est que ces sous formulaires s'affichent dans
le formulaire principal simplement s'il contienne des enregistrements
correspondants à ma référence de la liste A.
J'espère que cette explication est plus claire...
J'ai essayé de résoudre le problème avec ta solution 1 cependant je
ne trouve pas la fonction "permettre l'ajout" dans mes propriétés de
sous formulaires. Peut-être est -ce parce que je possède la version
2000 d'ACCESS...

Merci pour l'intérêt que tuportes à ma demande.

Cordialement

Whitehell

Warrio wrote:
Salut!
Ton explication du problème n'est pas si claire. qu'est-ce que tes so us
formulaire affiche quand il n'y a pas de données?

1. Si c'est un enregistrement vide, alors c'est parce que:
Access affiche tes sous formulaire parce qu'il laisse la possibilité à la
saisie d'un nouvel enregistrement. ce qui peut etre utile selon les cas.
si
tu ne veux pas laisser cette possibilité et afficher seulement ceux q ui
sont
déjà existants, alors tu doit seter la propriété de ton sous fo rmulaire
"Allow Addition" (en francais, ca doit etre permettre l'ajout...) à N on

2. Si ce sont des enregistrements sont affichés dans ton sous formula ire
mais ne devraient pas y figurer, alors tu dois regarder au niveau du
contrôle du sous formulaire (celui dans la fenêtre mère), vas sur ses
propriété et paramètre les jointure entre la fenêtre mère et le sous
formulaire, pour que ca les données suivent celle de la fenêtre m ère


a écrit dans le message de news:

Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée a ux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell




Avatar
Eric
Bonjour,

Une petite précision; à te lire : tu emploies le mot liste pour table,
est-ce bien cela ?
Si la réponse est positive, alors il y a une clé étrangère dans les
tables B et C qui pointe sur la table A.
Pour masquer/affcicher tes sous-formulaires, tu mets sur l'évènement
Activation du formulaire:
Private Sub Form_Current()
Me.NomSousFormB.Visible=(Dcount("*","TableB","CleEtrangereB=" &
ClePrimaireA)>0)
Me.NomSousFormC.Visible=(Dcount("*","TableC","CleEtrangereC=" &
ClePrimaireA)>0)

(Dcount("*","TableC","CleEtrangereC=" & ClePrimaireA)>0) retourne True
ou False suivant le cas et donc masquera le sousformC si ça vaut False

Si, maintenant, ton formulaire ne contient qu'une liste déroulante basée
sur la table A et les 2 sous-formulaires, tu mettras le code aussi sur
l'évènement Après Mise à jour de la liste déroulante A.


Attention, si les sous-formulaires ne sont pas visibles, tu ne pourras
pas ajouter des infos.

Salut!

Tout d'abord merci pour ta réponse.
Je vais essayer de détailler mon problème:

Imagine que j'ai une liste de référence que j'appel A, viens ensuite
une liste de référence client correspondante B ainsi qu'une liste de
concurrent correspondante C (je me limite à trois tables pour
l'explication de mon problème).
La liste A est entièrement remplie car à chaque référence de cette
liste correspond une référence client et/ou concurrent. Seulement,
pour certaine référence de la liste A, il n'ya pas de référence
correspondante dans la liste B et/ou C.
A partir de là, lors de la création de mon formulaire de recherche à
partir de la liste A, j'ai créé deux sous formulaires correspondants
aux listes B et C.
Ce que je voudrais donc c'est que ces sous formulaires s'affichent dans
le formulaire principal simplement s'il contienne des enregistrements
correspondants à ma référence de la liste A.
J'espère que cette explication est plus claire...
J'ai essayé de résoudre le problème avec ta solution 1 cependant je
ne trouve pas la fonction "permettre l'ajout" dans mes propriétés de
sous formulaires. Peut-être est -ce parce que je possède la version
2000 d'ACCESS...

Merci pour l'intérêt que tuportes à ma demande.

Cordialement

Whitehell




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Warrio
ce qui suit, ce sont les propriétés du controle (le cadre) !! pas celles du
form
et si tu désactive Autoriser l'ajout, tu ne pourra effectivement pas ajouter
de nouveaux enregistrements, mais en revanche, tu as l'avantage de ne plus
voir de liste pour ceux qui n'ont pas d'enregistrement.

la solution, c'est que tu mettes un bouton 'Nouveau' et que tu désactive ou
active la propriété "Autoriser l'ajout" par code VBA (ce que tu appelle
''phrases'')

et pour ca, je ne vais pas te donner un cours, mais simplement qq pas pour
t'aider un peu
Ctrl+F11 (pour accéder au code VBA)
créer un nouveau bouton dans la fenêtre mère, afficher ses propriétés
dans l'anglet "Evenements", aller à "Sur click"
Ctrl+F2 pour arriver a la procédure d'excution de code lorsque tu clique sur
le bouton

tappe dedans ce qui suit:
Me.controls("NomDeTonControlSubForm").Form.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
Nom="" '(Nom est un contrôle pour y mettre qqchose de fictif,
sinon Access ne crée pas de record)
Me.controls("NomDeTonControlSubForm").Form.Dirtyúlse
Me.controls("NomDeTonControlSubForm").Form.AllowAdditions = False
-----------
Si ca ne marche pas, prend des cours!



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

Voilà les propriétés que j'ai dans l'onglet Données de mon
sous-formulaire:
Objet source
champs fils
champs père
activé
vérouillé

Je ne sais pas si la solution à mon problème se trouve dans cet
onglet sachant ke si je dis oui à "verouillé", je ne peux
effectivement plus rentrer des enregistrements mais le sous-formulaire
s'affiche même s'il est vide... Quand à la propriété "activé", ce
n'est pas non plus une solution...



J'ai la meme version d'Access que toi, mais en anglais
que'elle sont les propiétés que tu as dans l'anglet Données des propriétés
de ton subform?

je pourrais peut-etre alors te donner la traduction de "Allow Addition"


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

Salut!

Tout d'abord merci pour ta réponse.
Je vais essayer de détailler mon problème:

Imagine que j'ai une liste de référence que j'appel A, viens ensuite
une liste de référence client correspondante B ainsi qu'une liste de
concurrent correspondante C (je me limite à trois tables pour
l'explication de mon problème).
La liste A est entièrement remplie car à chaque référence de cette
liste correspond une référence client et/ou concurrent. Seulement,
pour certaine référence de la liste A, il n'ya pas de référence
correspondante dans la liste B et/ou C.
A partir de là, lors de la création de mon formulaire de recherche à
partir de la liste A, j'ai créé deux sous formulaires correspondants
aux listes B et C.
Ce que je voudrais donc c'est que ces sous formulaires s'affichent dans
le formulaire principal simplement s'il contienne des enregistrements
correspondants à ma référence de la liste A.
J'espère que cette explication est plus claire...
J'ai essayé de résoudre le problème avec ta solution 1 cependant je
ne trouve pas la fonction "permettre l'ajout" dans mes propriétés de
sous formulaires. Peut-être est -ce parce que je possède la version
2000 d'ACCESS...

Merci pour l'intérêt que tuportes à ma demande.

Cordialement

Whitehell

Warrio wrote:
Salut!
Ton explication du problème n'est pas si claire. qu'est-ce que tes sous
formulaire affiche quand il n'y a pas de données?

1. Si c'est un enregistrement vide, alors c'est parce que:
Access affiche tes sous formulaire parce qu'il laisse la possibilité à
la
saisie d'un nouvel enregistrement. ce qui peut etre utile selon les cas.
si
tu ne veux pas laisser cette possibilité et afficher seulement ceux qui
sont
déjà existants, alors tu doit seter la propriété de ton sous formulaire
"Allow Addition" (en francais, ca doit etre permettre l'ajout...) à Non

2. Si ce sont des enregistrements sont affichés dans ton sous formulaire
mais ne devraient pas y figurer, alors tu dois regarder au niveau du
contrôle du sous formulaire (celui dans la fenêtre mère), vas sur ses
propriété et paramètre les jointure entre la fenêtre mère et le sous
formulaire, pour que ca les données suivent celle de la fenêtre mère


a écrit dans le message de news:

Bonjour,

Je suis novice dans l'utilisation du logiciel Access. J'ai réussi
jusque là à régler tous mes problèmes via internet et un livre
spécial Access mais la je ne trouve pas de solution...
J'ai créé une base de donnée à 5 tables. Une table est liée aux
quatres autres... J'ai créé un formulaire avec quatre sous
formulaires. Cependant, certains sous-formulaires sont vides pour un
enregistrement du formulaire principal et bien entendu Access les
affiche tout de même.
J'aimerais donc savoir comment il est possible d'afficher un sous
formulaire que s'il contient des données.

Merci par avance pour votre aide

whitehell