Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et 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.

Réponse
 
Outils de la discussion
Vieux 28/11/2008, 00h08   #1 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 4
Par défaut [A-07] Liens entre formulaires

Bonsoir,

Je suis actuellement en apprentissage et mon patron souhaiterait que je développe une petite application pour lui permettre de gérer différentes choses.
Afin d'en assurer le maintien facile quand je ne suis pas là, nous nous sommes portés vers une application Access.
Je ne suis pas vraiment développeur de formation et je me retrouve devant un problème que je ne sais pas résoudre, je vais décrire brièvement une partie de l'application pour essayer d'expliquer ma logique.

J'ai fait une table des employés contenant :
- EmpID NuméroAuto Clé Primaire
- EmpNom Texte
- EmpPrenom Texte
- Plein d'autre champs pas très intéressants ici

J'ai une table client contenant :
- ClientID NuméroAuto Clé Primaire
- ClientNom Texte
- ClientPrenom Texte
- Client Adresse Texte
- ClientVille Texte
- ClientCodePostal Texte
- Plein d'autre champs pas très intéressants ici

J'ai une table Intervention contenant :
- InterventionID
- EmpID
- ClientID
- InterventionDate
- InterventionType
- Plein d'autre champs pas très intéressants


Lorsque j'ouvre mon formulaire d'accueil, j'ai différents boutons, pour créer une intervention ou un client notamment, et en dessous j'ai un sous formulaire, que j'appellerais "ListeEmp" et qui est de type Feuille de données, qui me liste l'ensemble des employés et la date et le type de leur dernière intervention.

De l'autre côté, j'ai un formulaire de type fiche employé, qui affiche toutes les informations sur un employé, et contenant un sous formulaire, que j'appellerais "ListeIntEmp" et qui est de type Feuille de données, qui liste l'ensemble de ses informations.

J'aimerais que, depuis mon formulaire d'accueil, en cliquant sur une ligne de mon formulaire "ListeEmp" cela m'amène vers la fiche de l'employé sur lequel je viens de cliquer, or je ne trouve pas comment faire, je n'arrive qu'a ouvrir le formulaire fiche employé mais sans sélectionner un employé précis.

Avez vous la solution ou des pistes pour m'aiguiller ?

Si je n'ai pas été clair ou n'ai pas donné suffisamment de détails, merci de me le dire et je corrige ça au plus vite.

D'avance merci !
Nictalyon est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/11/2008, 21h32   #2 (permalink)
Rédacteur/Modérateur

 
Avatar de loufab
 
Date d'inscription: avril 2005
Localisation: TOULOUSE
Âge: 40
Messages: 4 072
Envoyer un message via MSN à loufab
Par défaut

Bonjour,

Il faut voir du coté de la clause Where de la commande docmd.openform

La syntaxe et de type Where SQL.

Cordialement
__________________
questions techniques par MP >>> poubelle ! -- "Jeux dés teste le lent gagé c'est messe ! Hein qu'on prêt en cible nom ?"
les Sources ACCESS Tutoriels et Applications gratuites | Mode Page ACCESS 2007 | Sécurité ACCESS | Appels formulaires | Optimisez vos applications Visitez AccesSite

"Access ne nous rend que ce qu'on lui donne..." loufab
Real men drive a big block
loufab est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/12/2008, 23h37   #3 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 4
Par défaut

Merci de ta réponse loufab.

J'essaie de faire une clause where dans l'éditeur de Macro, mais malheureusement je n'y arrive pas.

Voici un petit prototype que j'ai fait pour montrer ce que j'ai testé : http://www.cijoint.fr/cjlink.php?fil...cijadd5Ncl.zip

Sur le formulaire accueil, j'affiche la liste des employés du formulaire ListEmp.
Plusieurs problèmes :
- je n'arrive pas à faire en sorte que la FicheEmp soit lancé lorsque je clique sur la ligne mais seulement sur un des champs de la ligne (le faire pour tous les champs ne me semble pas très "élégant").
- J'essaie de mettre différentes syntaxes dans l'éditeur de macro, mais ça m'affiche seulement la première fiche employé.

Désolé pour mon faible niveau mais je commence à être perdu là
Nictalyon est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/12/2008, 17h03   #4 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 4
Par défaut

Je cherche toujours une solution mais je n'ai pas du bien comprendre la logique

L'aide dit ceci :
Citation:
Condition Where
[...]
Pour ouvrir un formulaire et limiter ses enregistrements à ceux spécifiés par la valeur d'un contrôle dans un autre formulaire, utilisez l'utilisation suivante :

[nom champ] = Formulaires![nom formulaire]![nom contrôle dans autre formulaire]

L'argument nom champ est le nom d'un champ de la table sous-jacente ou de la requête sous-jacente du formulaire que vous ouvrez. L'argument nom contrôle et nom contrôle dans autre formulaire est le nom du contrôle dans l'autre formulaire, qui contient la valeur à laquelle vous souhaitez que les enregistrements du premier formulaire correspondent.
Mais je suis dans l'accueil je n'ai donc pas de EmpID auquel faire référence à part celui sur lequel je clic, ce que je n'arrive pas à faire...
Nictalyon est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 18h37   #5 (permalink)
Rédacteur/Modérateur

 
Avatar de loufab
 
Date d'inscription: avril 2005
Localisation: TOULOUSE
Âge: 40
Messages: 4 072
Envoyer un message via MSN à loufab
Par défaut

Bonjour,

Si tu veux un conseil, laisse tomber les macros. Tu vas vite être limité en fonctionnalitées et en informations disponibles.

Passe par des modules dans les formulaires c'est plus pratique.

Cordialement,
__________________
questions techniques par MP >>> poubelle ! -- "Jeux dés teste le lent gagé c'est messe ! Hein qu'on prêt en cible nom ?"
les Sources ACCESS Tutoriels et Applications gratuites | Mode Page ACCESS 2007 | Sécurité ACCESS | Appels formulaires | Optimisez vos applications Visitez AccesSite

"Access ne nous rend que ce qu'on lui donne..." loufab
Real men drive a big block
loufab est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/12/2008, 09h30   #6 (permalink)
Invité de passage
 
Date d'inscription: novembre 2008
Messages: 4
Par défaut

Bonjour Loufab,

Je prend note de ton conseil, mais même en passant par un module je ne vois pas comment avoir accès sur l'id (l'EmpID) du champ sur lequel je clique ?

Bonne journée,
Nictalyon est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/12/2008, 21h38   #7 (permalink)
Rédacteur/Modérateur

 
Avatar de loufab
 
Date d'inscription: avril 2005
Localisation: TOULOUSE
Âge: 40
Messages: 4 072
Envoyer un message via MSN à loufab
Par défaut

Bonjour,

DAns un module de formulaire on écrit me.moncontrole

Regarde le tuto sur les appels de formulaires sur mon espace perso.

Beaucoup de lecture et d'exercice pour avoir un début d'autonomie. VBA est un langage et comme tout langage (informatique ou linguistique) il faut étudier.

Cordialement,
__________________
questions techniques par MP >>> poubelle ! -- "Jeux dés teste le lent gagé c'est messe ! Hein qu'on prêt en cible nom ?"
les Sources ACCESS Tutoriels et Applications gratuites | Mode Page ACCESS 2007 | Sécurité ACCESS | Appels formulaires | Optimisez vos applications Visitez AccesSite

"Access ne nous rend que ce qu'on lui donne..." loufab
Real men drive a big block
loufab est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/12/2008, 00h09   #8 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: avril 2005
Messages: 25
Par défaut une solution

Moi j'ai resolu ce probleme par une liste deroulante independante
avec un sous formulaire.
1
Dans un formulaire principale tu creais une liste deroulante avec 3 champs
issue de la table employé.
ex: N°listeEmployé; NomEmploye; PrénomEmployé.
La liste est créé sur le champ N°ListeEmployé.
Lors de son action tu ouvriras cette liste avec les trois champs dans l'ordre.
Maintenant il faut modifier cette liste deroulante en liste independante.
Pour ce faire tu vas dans les propriétes de la liste deroulante ou tu trouvras son nom, sa source et la largeur de chaque champ.
Tu garde le nom et tu supprime la source pour devenir indépendant.
Sur la largeur des champs, tu mets a zero sur la premiere largeur.
2
Tu creais un formulaire employé avec ses corodonnées qui deviendra par la suite un sous formulaire.
3
A partir de ton formulaire principale ou se trouve ta liste deroulante, tu lui ajoutes le sous forulaire.
Pour cela tu ouvre ton formulaire principale en mode creation puis avec l'outil sous formulaire tu le créesen utilisant le module formulaire existant.
Dans les propriétés du sous formulaire , le champ pere et le champ fils doivent etre le N°ListeEmployé
Si tu n y arrive pas , je peux te faire parvenir un modele
Me joindre 0613586522
castours est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > IHM



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide