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

IHM Discussion :

voir l ensemble d'un sous formulaire dans une relation plusieurs a plusieurs


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut voir l ensemble d'un sous formulaire dans une relation plusieurs a plusieurs
    Bonjour le forum,

    Depuis quelques années je 'chipote' comme je peux avec access et grace a vous j'ai déja pu faire des choses super.

    Cela dit, bien souvent j'ai eu envie de pouvoir rendre l utilisation de formulaire plus logique...mais sans succes. J'ai cherché souvent mais n'ai jamais vraiment trouvé ni pu exploiter ce que je lisais alors autant poser la question pour au moins avoir une piste ou formuler mon besoin.


    Prenons l'exemple d'une commande, composée d'articles eux même composés de pieces ..et donc d'une table tblarticlepiece et tblarticlecommande qui renseigne par exemple la quantité de chaque article de la dite commande.


    Ce que j'arrive a faire c'est dans un sous formulaire choisir dans une liste déroulante l'article (lisez la piece pour mon exemple), y ajouter une quantité et passer a la ligne suivante, re choisir un article et mettre la quantitén, etc...



    Seulement , ce qui me conviendrait mieux c'est que ce sous formulaire ou je cree des ligne affiche d'office l'ensemble des articles existants...filtrés selon un critere dans le formulaire parent et en vis a vis des pieces me permette de fixer la quantité ou activer une case a cocher pour le choisir et l intégrer a l'article en question.

    La finalité serait de saisir une commande, creer un devis etc...

    Commande > article > pieces à selectionner puis article 2 de la meme commande


    un article A serait alors la réunion des pieces 1, piece 7, piece 10 sur l'nsemble des 50 pieces possibles pour sa composition.

    un devis ou une commande serait l'ensemble des articles A , B, ...



    Mon unique probleme c'est de rendre la composition de l'article A plus simple que de devoir rentrer ligne apres ligne la reference des pieces A, piece B etc...


    En annexe, je joins une base exemple l'idee est la meme en gros pour un restaurant...un client peut commander a boire et a manger... le serveur n'aurait qu'a coché dans une liste d'article formatée...

    Si quelqu'un pouvait m'aider , ca me ferait passer un step
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Je suppose que tu as une table qui te donne la composition de ton article.

    Ce que je ferai c'est que lorsque l'utilisateur choisi l'article A, j'ajouterai à sa commande l'ensemble des pièces qui compose l'article A (avec un peu de VBA). Après l'utilisateur indique le nombre de pièces qu'il veut pour chacune des pièces présentées..
    Ensuite, une fois la commande 'validée', je supprimerai toutes les lignes de pièces dont la quantité est à 0.

    Une variante consisterait à passer par une table temporaire locale de saisie des pièces et de n'ajouter à la commande que les pièces choisies.

    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    bonsoir et merci de ton interet pour mon probleme.

    J'ai en fait une table article qui propose la base des articles et les pieces/options possibles

    un peu comme si chez audi tu choisissais une A6... la liste affiche les options de l audi A6 en commencant par les motorisations...puis le toit ouvrant etc...

    mais tout est affiché et à selectionner...

    le probleme c'est que je ne peux pas faire de "formulaire" independant pour injecter des data car je sais meme pas si c'est possible que ce forulaire soit dynamique...au sens ou la liste des options peut contenir 200 options pour l'audi A6 mais 100 pour l'audi A3... mais c'est l idee oui..

    On voit ca souvent lol mais je ne sais meme plus quoi chercher dans google

    pour l'etape intermediaire oui je me disais bien qu'elle serait nécessaire... mais à la base j'ai quand meme besoin de pouvoir afficher tous les choix possibles dans le sous formulaire...et pas via ce sosu formulaire, ajouter sous enregistrement par sous enregistrement

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Je ne me suis peut être pas bien exprimer, je vais re détailler mon idée.

    Tu choisi mettons, une audi A6.

    Tu as alors un formulaire qui pointe sur une table temporaire (ou sur la table réelle) et qui affiche

    Toit ouvrant, Qte
    Enjoliveur, Qte
    Volant sport, Qte
    et ainsi de suite pour 200 lignes.

    L'utilisateur complète les quantités.

    Tu recopies les lignes où il y a des quantités dans ta table de commande. (Si tu utilises ta table réelle, tu enlèves les lignes où la quantité est à 0.)

    Ce que vois ton utilisateur c'est une liste complète des pièces disponibles et il peut "choisir" ce qu'il veut seulement en complétant la quantité. Un peu comme un vieux formulaire papier.

    En interne tu ne gardes que ce qui t'interesse vraiment.

    A+

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut


    l'idee c'est bien cela , on parle de la meme chose...

    La seule chose c'est que je ne sais pas comment faire pour avoir ce style formulaire papier ou on ''cocherait'' devant l'article (ou renseigner une quantité 1)

    Ca semble simple pour toi mais en fait moi tout ce que je sais faire c'est:

    - Choisir l'audi A6 de la table modèle

    - avoir les options de ce modele qui s'affichent...

    non je m'exprime mal

    avoir un sous formulaire qui me permet de créer une ligne d'enregistrement en choisissant ...toit ouvrant dans une champs liste...puis mettre 1 dans quantité

    nouvel enregistrement... sieges sports...quantité 1

    nouvel enregistrement tjs dans le sous formulaire....je trouve et choisi attache remorque dans la liste et je mets 1 en quantité dansle champs suivant

    et c'est ce défaut d'ergonomie que je voudrais améliorer.

    Ce que je ne sais pas faire c'est bien afficher les 200 options de cette audi a6 en une seule fois dans mon sous formulaire et mettre 1 en face des options qui m interessent

    Ce qui serait simple a faire en papier et si je faisais un état papier et que je pointais au stylo oui...

    allez ca doit porter un nom ce truc ca doit etre une simple fonction a coté de laquelle je suis tjs assé comme un c.... sans jamais l experimenter

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Désolé du délais, du boulot par dessus la tête jusqu'à ajourd'hui.

    Autant que sache, il n'y a pas de mécanisme automatique.

    La solution la plus simple est de passer par une table temporaire ou tu ajoute toi-même les données. Voici un exemple simple à adapter à ton besoin.

    Table Voiture :
    ClefVoiture

    Table AssArticleVoiture :
    ClefArticle
    ClefVoiture

    Table Principale :
    ClefEnregistrement
    ClefArticle
    QteArticle

    Table Temporaire :
    ClefEnregistrementTemp
    ClefAticleTemp
    QteArticleTemp
    EstCommande (Boolean, c'est la case à cocher).

    Avec l'éditeur de requête :

    Crée une requête qui supprimme les données dans la table Temporaire (rViderTemporaire).

    Crée une requête qui ajoute les données dans la table Temporaire pour l'audi A6 à partir de ta table AssArticleVoiture. Une fois cela fait remplace ton critère "Audi A6" par [prmClefVoiture] (avec les crochets). Tu viens de créer une requête paramétrée (rCopierArticleVoiture).

    Crée une requête qui ajoute les données de Temporaire dans Principale seulement si EstCommande est vrai (rCopierCommande).

    Ça c'est pour la logique SQL.

    Ensuite tu peux utiliser le VBA suivant pour l'automatiser. Il peut être appelée par la sélection du type de voiture dans une liste (Événemnet Après MAJ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim db as dao.database:set db=currentdb
    db.querydefs("rViderTemporaire").execute 'vide la table temporaire
     
    dim q as dao.querydef:set q=db.qerydefs("rCopierArticleVoiture")
    q.parameters("prmClefVoiture")=me.ClefVoiture 'Suppose qu'il y a un champ ClefVoiture quelque part dans ton formulaire de saisie
    q.execute 'Copie la liste des arcticles disponibles pour cette voiture
     
    set q=nothing
     
    me.SfSaisieCommandeArticle.form.recalc 'Force la MAJ du sous formulaire de saisie
     
    db.close:set db=nothing
    Code a appeler quand l'utilisateur 'confirme' sa commande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim db as dao.database:set db=currentdb
    db.querydefs("rCopierCommande").execute 'copie les choix dans la commandedb.close:set db=nothing
    A+

Discussions similaires

  1. sous formulaire dans une JSP
    Par skillipo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/02/2008, 16h21
  2. Sous-formulaire dans une nouvelle fenêtre
    Par Satch dans le forum IHM
    Réponses: 2
    Dernier message: 21/06/2007, 08h40
  3. Réponses: 2
    Dernier message: 27/03/2007, 17h47
  4. Réponses: 4
    Dernier message: 28/12/2006, 17h38
  5. Sous Formulaire dans une fenetre
    Par mycrodom dans le forum IHM
    Réponses: 4
    Dernier message: 24/11/2006, 14h00

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