Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2011, 21h01   #1
Invité de passage
 
Eric
Inscription : décembre 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Eric

Informations forums :
Inscription : décembre 2010
Messages : 9
Points : 3
Points : 3
Par défaut Lier 2 formulaires continus entre eux

Bonjour,

je cherche à obtenir la liste des personnes inscrites pour chacune de mes classes. J'ai (mal ?) cherché dans les FAQ et le forum et je n'ai rien trouvé qui me convienne :
- le treeview ne permet que d'afficher, mais je ne suis peut-être pas allé assez loin
- le formulaire pivot table n'est pas du tout paramétrable.

Je pensais partir sur 2 sous formulaires continus liés entre eux. C'est à dire que la sélection d'un enregistrement dans le premier provoque l'affichage de la liste des personnes dans le 2ème.
Je ne sais pas si la solution est bonne (elle me paraît un peu lourde), et je sais encore moins comment faire pour arriver à ce résultat.

voici visuellement, ce que je tente de faire : (la sélection de l'enregistrement de la classe du mercredi provoque l'affichage des élèves dupond et martin ...

Est-ce que quelqu'un pourrait me conseiller ?



merci d'avance !

Eric
efilippi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 21h51   #2
Membre régulier
 
Homme Philippe
Technicien biomédical
Inscription : mai 2005
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Technicien biomédical
Secteur : Santé

Informations forums :
Inscription : mai 2005
Messages : 59
Points : 72
Points : 72
Parmi les solutions en voici une relativement simple :
- Créer un formulaire basé sur la table des personnes inscrites
- Créer une zone de liste avec les cours
- sur un évènement clic, filtrer le formulaire

Lorsque l'on créé une liste le didacticiel d'Access propose une aide pour réaliser ce type de filtrage.

Autre possibilité sans toucher au VBA, il faut que le formulaire des personnes inscrites soit un sous-formulaires des cours avec le lien sur l'ID des cours.

Après, il aurait pleins d'autres solutions plus ou moins élégantes, mais il faut mettre les mains dans le vba.

ATTENTION, s'il n'y a qu'une table cours et une table Inscrits, cela suppose que les personnes ne peuvent s'inscrire qu'à un seul cours !!!!
Sinon il faut passer par une table qui lie les cours avec les inscrits...
Fifi69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 09h37   #3
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Je dirais que le plus simple c'est de basé le 2 eme sous-formulaire sur une requête qui a pour critère la valeur sélectionnée dans le premier sous-formulaire.
A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2011, 13h37   #4
Invité de passage
 
Eric
Inscription : décembre 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Eric

Informations forums :
Inscription : décembre 2010
Messages : 9
Points : 3
Points : 3
Merci à vous 2, grace à vos réponses j'ai pu trouver ma solution !

Citation:
ATTENTION, s'il n'y a qu'une table cours et une table Inscrits, cela suppose que les personnes ne peuvent s'inscrire qu'à un seul cours !!!!
Sinon il faut passer par une table qui lie les cours avec les inscrits...
Oui, j'ai une table inscriptions qui relie les tables "cours" et "personnes" pour une liaison n-n

Solution de Fifi69 :

Citation:
- Créer un formulaire basé sur la table des personnes inscrites
- Créer une zone de liste avec les cours
- sur un évènement clic, filtrer le formulaire
C'est intéressant, car je sais accéder aux données de la zone de liste en VBA ..., mais au niveau de l'affichage, je ne suis pas fan (c'est pas très paramétrable) ...

Solution de doc flint :

Citation:
Je dirais que le plus simple c'est de basé le 2 eme sous-formulaire sur une requête qui a pour critère la valeur sélectionnée dans le premier sous-formulaire.
Effectivement, ça marche très bien, voici ce que j'ai fait pour ceux que ça intéresse :

1. Je base le sous-formulaire "Liste des personnes" sur une requête dépendante du champ "N° de classe" dans le sous-formulaire "Liste des classes" :

Code :
SELECT Inscription.[N° inscription], Inscription.[N° classe], Client.Nom, Client.Prénom FROM Client INNER JOIN Inscription ON Client.N° = Inscription.[N° client] WHERE (((Inscription.[N° classe])=[Formulaires]![Tableau de bord classes]![Liste classes].[Formulaire]![]));
2. puis je réactualise le sous-formulaire "Liste des personnes" sur l'événement "Sur activation" du sous-formulaire "Liste des classes" :

Code :
Forms![Tableau de bord classes]![Liste personnes].Requery
Ca marche parfaitement, et ça répond parfaitement à mon besoin !

merci encore !
efilippi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h20   #5
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Pour faire simple :
-Tu place un champs texte sur le formulaire Père et dans les données de ce champs =[nom du champs à sélectionner dans le premier sous-form]
-tu crée un requête avec les tables classes et personnes et sur classe tu mets
comme critère le champs texte
-puis le deuxième sous-formulaire sera basé sur cette requête
-N'oublie pas de mettre un petit code sur le lost_focus du premier pour la mise à jour du deuxième sous-formulaire.
Bon courage et A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2011, 14h24   #6
Invité de passage
 
Eric
Inscription : décembre 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Eric

Informations forums :
Inscription : décembre 2010
Messages : 9
Points : 3
Points : 3
Citation:
Envoyé par dok flint Voir le message
Bonjour ,
Pour faire simple :
-Tu place un champs texte sur le formulaire Père et dans les données de ce champs =[nom du champs à sélectionner dans le premier sous-form]
-tu crée un requête avec les tables classes et personnes et sur classe tu mets
comme critère le champs texte
-puis le deuxième sous-formulaire sera basé sur cette requête
-N'oublie pas de mettre un petit code sur le lost_focus du premier pour la mise à jour du deuxième sous-formulaire.
Bon courage et A+
merci !, entre-temps j'ai trouvé une solution encore plus simple, et j'ai modifié mon poste en conséquence. Tm'avais donné juste ce qu'il faut de conseils pour que je trouve moi même ! ;-)
efilippi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h30   #7
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
C'est très bien bonne continuation.
A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h07.


 
 
 
 
Partenaires

Hébergement Web