IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Relations n-n, cases à cocher et formulaires : mon grand désespoir


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Relations n-n, cases à cocher et formulaires : mon grand désespoir
    Bonjour à tous,

    Sous ce titre un peu théatral, se cache un réel appel à l'aide...

    Je précise d'emblée que même si c'est mon premier message, j'ai pas mal écumé le forum avant de poser cette question, désespérément rechercér des ressources sur le net ( il y a tellement de résultats sous google que plus rien n'est pertinent ), et évidemment fouiné dans des bouquins. Bref, ceci n'est pas de la délégation, ça fait maintenant des jours et des jours que je cherche une solution.

    Je dois développer une application de suivi de formations sous access ... 2000 premium (oui, ça existe encore). Je suis débutant, habituellement développeur web, et franchement je patauge.

    Dans ma base de données, j'ai plusieurs relations de type n-n;
    Plus concrètement, j'ai une table "employés" structurée comme suis :

    id - nom - prenom - date d'entrée dans l'usine

    Une table "Fonctions" organisée comme suis :

    id - nom - service_id ( clé étrangère vers une tierce table )

    Etant donné qu'un employé peut occuper plusieurs postes, et qu'un poste peut être occupé par plusieurs employés, j'ai une table de jointure comportant simplement id_employe et id_fonction.

    Ce que je veux faire : créer un formulaire "d'édition" des employés, c'est à dire qui permette d'ajouter de nouveaux employés, de modifier/supprimer les existants.

    Mon problème : je souhaite que dans ce formulaire, pour chaque employé, il y ai une "liste" ( pas dans le sens access du terme ) de toutes les fonctions, chaque dénomination de fonction étant précédée d'une case à cocher, et que l'utilisateur puisse tout simplement en cas d'ajout/modification d'un membre du personnel cocher ces cases pour attribuer les fonctions. Le nombre de fonctions est "dynamique", je ne peux donc pas faire ça bêtement en mode création de formulaires ( enfin je ne crois pas... ). Je me doute que la solution passe par un sous-formulaire.

    Est-ce possible ? Si pas, quelle solution vous semble ergonomiquement viable pour une utilisation par un utilisateur lambda ?

    Question Bonus : mis à part ce site-ci, quelles autres bonne ressources - que ce soit en matière de tuto ou de codes exemples - connaissez-vous sur le web ?

    Merci d'avance,

    François

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Bienvenue sur le Forum Access

    Bonus : Ce site est le meilleur du genre.

    Pour ce que tu veux faire, c'est un peu ardu.

    Pour ajouter des fonctions, on peut le faire avec un combo.

    Pour les supprimer, Delete va aussi bien qu'une case à cocher.
    Le fait de travailler avec des Check Box signifie que les enregistrement sont présents. Comment cocher à oui/ou non quelque chose que l'on n'a pas.

    Il est possible de prendre dans le combo les enregistrements de la table fonction qui n'ont pas encore été choisis pour un employé.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 308
    Points
    32 308
    Par défaut
    En passant par une table temporaire, je crois que j'avais expliquer cela quelque part, je recherche

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 308
    Points
    32 308
    Par défaut
    Je ne retrouve plus.

    Mais l'iée c'est :

    1. Créer une table temporaire ttemp avec comme structure :

    Selectionne : champ booleen
    IdFonction : champ numérique
    IdContact : champ numérique
    LibelleFonction : texte qui sera affiché.

    Evidemment cette table n'est pas conceptuellement correcte car libellefonction depend de idfonction, mais comme c'est une table temporaire, c'est plus pratique et on évite une requête supplémentaire.

    2. Créer un sous formulaire sur cette table

    3. Dans l'évènement Current du formulaire principal (formulaire affichant un contact), il faut :

    Vider la table temporaire, la remplir avec la liste des fonctions et en cochant celles qui sont actuellement recencée dans la table de jointure fonction/contact pour le contact sélectionné.

    4. De ce fait, le sous formulaire affiche bien ce que tu veux.

    5. Pour les mise à jour, un bouton dans le formulaire principal permet de :

    - Lancer une requête qui supprime de la table de jointure les fonctions où le contact n'appartient plu

    - D'ajouter les nouvelles

  5. #5
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Heureux-oli
    Pour les supprimer, Delete va aussi bien qu'une case à cocher. Le fait de travailler avec des Check Box signifie que les enregistrement sont présents. Comment cocher à oui/ou non quelque chose que l'on n'a pas.
    Qu'entend tu pars delete ? Je ne comprend pas non plus l'histoire de comment cocher qq chose que l'on a pas, vu que les enregistrements sont dans la db... tu parles au niveau gestion des évènements? désolé si c'est vraiment des questions c**

    En fait j'avais pensé aux combo, mais le problème c'est que l'utilisateur veut avoir une vue d'ensemble claire quand il arrive sur la fiche d'un employé. J'envisage, si le système des cases à cocher ne peut pas marcher, de mettre deux list-box, une avec les fonctions non encore attribuées à l'employé, l'autre avec celles où c'est le cas, et des boutons de "switch" entre les deux. Par contre, si c'est le cas, il faut que je trouve une solution au problème suivant : chaque fonction fait partie d'un service. Il faudrait que dans la liste, j'ai "service 1" non selectionable suivi des fonctions correspondantes, puis "service 2" également non sélectionnable, etc...

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Citation Envoyé par french50
    Qu'entend tu pars delete ? Je ne comprend pas non plus l'histoire de comment cocher qq chose que l'on a pas, vu que les enregistrements sont dans la db... tu parles au niveau gestion des évènements?
    Les enregistrements qui ne sont pas présents, tu ne peux pas les cocher.
    Tu ne peux cocher que les enregistrements déjà ajoutés.
    Regarde la solution de Tofalu.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    @ Tofalu :

    C'est vrai que cela pourrait être une bonne solution, même si avec mes bases assez limite je vais galérer

    Mais il y a un truc qui me chiffone, juste pour ajouter un peu de difficulté ( hum ) : chaque fonction appartient à un service; L'utilisateur veut que cela soit "trié" , c'est à dire :

    Dans le formulaire, en dessous du nom du premier service, "liste" des fonctions avec leurs cases à cocher; Idem pour un deuxième service, 3ème, etc.. le nombre de service étant dynamique.

    Ah la la, dire qu'en web j'aurais déjà fini depuis longtemps...

    Merci en tout cas pour les réponses aussi rapide que l'éclair, j'aurais pas cru.

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 308
    Points
    32 308
    Par défaut
    Là ça complique

    ça sous entend un formulaire continu (service) incluant un autre (fonction). C'est impossible.

    A la limite un treeview ferait bien l'affaire je pense mais à condition de disposer de connaissances assez solide.

    Essaye déjà de reproduire le cas que je t'ai évoqué dans un premier temps

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/12/2008, 22h27
  2. Réponses: 4
    Dernier message: 01/09/2008, 13h27
  3. "case à cocher" chargement formulaire
    Par Cirrus dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/04/2008, 21h39
  4. case à cocher et formulaire continu
    Par romram dans le forum Modélisation
    Réponses: 4
    Dernier message: 23/05/2007, 14h52
  5. Case à cocher dans formulaire en continu
    Par Sofie109 dans le forum Access
    Réponses: 4
    Dernier message: 10/07/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo