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 :

Formulaire modifiable basé sur une requête


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Formulaire modifiable basé sur une requête
    Bonjour à toutes et à tous,

    j'ai une base de données dans laquelle j'enregistre mes commandes (une table ENTETE, et une table DETAIL).

    Je souhaite éditer des bons de livraison à partir des commandes.
    J'ai donc en créé une requête qui groupe les produits par catégorie et par prix.
    Puis j'ai créé un formulaire dans lequel je voudrais afficher les valeurs de la requête (produit/prix/quantité dans un sous-formulaire en mode continu), mais ces valeurs doivent être modifiables (en cas de rupture de stock sur un produit).

    Le problème est que si je me base sur la requête pour afficher les quantités, je ne peux pas modifier les valeurs.
    Et avec un champs indépendant dont la valeur par défaut est la quantité (=Me.[Quantité]), à chaque fois que je modifie la valeur d'une ligne cela se répercute sur toutes les autres.

    Est-ce que quelqu'un a une solution pour résoudre ce problème ?

    J'espère avoir été clair, merci d'avance !

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Il y a un petit problème de conception. Le fait que tu veuilles avoir une quantité livrable différente de la quantité commandée veut dire que "COMMANDE" et "LIVRAISON" deviennent 2 entités différentes. Donc 2 tables différentes avec leur propre existence propre.
    Si tu veux plus d'explication, il faudrait que tu donnes ton modèle actuel.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Je te suggère de t'intéresser à la technique des formulaires « pères/fils ».

    Si tu ne connais pas encore, vois ici : http://claudeleloup.developpez.com/t...us-formulaire/


    et un exemple ici : http://claudeleloup.developpez.com/t...lic-ploc/#LIII


    ... et reviens-moi si ce n'est pas clair pour toi.



    edit : un amical bonjour à Mandresy qui a posté pendant que je rédigeais.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Salut Claude !
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Bonjour et merci pour vos réponses.

    En effet, j'aurais dû préciser :
    - j'ai créé 2 tables pour les bons de livraison (ENTETE et DETAIL)
    - je copie ensuite les données du formulaire dans ces tables lorsqu'on crée le bon de livraison (via un bouton "VALIDER")

    Mon seul problème est donc de pouvoir afficher des valeurs par défaut dans le formulaire (celles de la requête) et de pouvoir modifier ces valeurs si besoin.

    Est-ce possible ?

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Désolé, mais il faut encore plus de détails parce que là il faut que nous puissions comprendre tous les éléments qui entrent en considération.
    Du genre :
    1- Tu as un formulaire "f_Commande" (ENTETE) avec un sous-formulaire "SF_detailcommande" (DETAILS) qui alimentent les tables correspondantes avec les champs... Sont-ils liés??
    2- Tu valides un bouton qui te permet de créer un bon de livraison...
    3- Tu as donc actuellement un formulaire "f_bondelivraison" avec un sous-formulaire "sf_livraison" basés sur les tables correspondantes......
    et ainsi de suite....
    Avec les codes sources et champ si possibles.

    @+
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    OK, c'est parti pour les détails

    Alors j'ai :
    - 2 tables liées pour les commandes (COMMANDE-ENTETE et COMMANDE-DETAIL)
    - 1 requête basée sur COMMANDE-DETAIL qui me groupe donc les produits par quantité et prix
    - 1 formulaire en mode simple dont les données proviennent de la table COMMANDE-ENTETE
    - 1 sous-formulaire en mode continu, inclus dans le formulaire, dont les données proviennent de la requête
    - 1 bouton "Valider" dans le formulaire qui copie (code VBA) les données du formulaire dans 2 tables liées pour les bons de livraison (BL-ENTETE et BL-DETAIL)
    Les données du formulaire principal sont donc copiées dans BL-ENTETE et les données du sous-formulaire sont copiées dans BL-DETAIL.

    En espérant avoir été assez clair...
    Encore merci pour votre aide

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Et... où est le point 3 que j'indique ?
    3- Tu as donc actuellement un formulaire "f_bondelivraison" avec un sous-formulaire "sf_livraison" basés sur les tables correspondantes......
    Parce que c'est là normalement que tu pourras modifier les quantités livrées ? ?

    Si je reprends à partir de :
    - 1 bouton "Valider" dans le formulaire qui copie (code VBA) les données du formulaire dans 2 tables liées pour les bons de livraison (BL-ENTETE et BL-DETAIL)
    Là tu affiches un formulaire similaire au formulaire de commande basé sur tes tables de livraisons. Et c'est dans BL-DETAIL que tu dois pouvoir modifier la quantité livrée.

    OK?!?
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Je suis pas sûr de te suivre...

    Voici le processus:
    - d'abord j'enregistre la commande (via un formulaire + sous-formulaire)
    - les données vont dans les tables COMMANDE-ENTETE et COMMANDE-DETAIL

    - ensuite, on va préparer les commandes puis remplir un nouveau formulaire (pour l'entête du BL) et un sous-formulaire (pour le détail)
    L'idée est donc de pré-remplir ces 2 formulaires en utilisant les données de COMMANDE-ENTETE et de la requete de groupement des produits

    Au départ les tables correspondant aux bons de livraisons (BL-ENTETE et BL-DETAIL) sont donc vides.
    On les remplit via le bouton de validation qui copie les données de COMMANDE-ENTETE et de la requete de groupement des produits vers ces tables.

    Est-ce clair ?

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Effectivement peut-être que nous nous y prenons différemment.
    Et comme un dessin ou "un exemple" ici est plus explicite que des mots, regardes la base ci-jointe, très simple qui permet de créer des bons de livraisons dont les quantités sont "modifiables" à partir d'un formulaire de saisi de commandes.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    je comprends ta structure, mais je ne peux pas faire la même chose pour des questions inhérentes à notre fonctionnement.

    Penses-tu qu'il y a une méthode pour arriver à faire ce que je veux ?

    Merci d'avance !

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Est-ce que tu peux envoyer ta base épurée (version 2000 de préférence) et indiquer clairement ce qui t'est interdit de faire.

    @+
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  13. #13
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    L'idée est donc de pré-remplir ces 2 formulaires en utilisant les données de COMMANDE-ENTETE et de la requete de groupement des produits
    ensuite, on va préparer les commandes puis remplir un nouveau formulaire (pour l'entête du BL) et un sous-formulaire (pour le détail)
    Pour parvenir à ce que tu souhaites, perso je procèderai comme suit :

    Après la sélection de la commande à vérifier et avant l'ouverture du formulaire de saisie de la Livraison (dont la source est la table des livraisons), je copierai les données de la commande (COMMANDE ENTETE et COMMANDE DETAIL) dans les tables Livraisons correspondantes. (BL-ENTETE et BL-DETAIL).

    Ton formulaire de livraison sera alors pré-rempli et les données seront alors modifiables.

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] pb de MAJ d'un formulaire continu basé sur une requête
    Par zanou666 dans le forum IHM
    Réponses: 1
    Dernier message: 13/04/2011, 10h36
  2. Réponses: 6
    Dernier message: 08/07/2008, 10h44
  3. Dupliquer enregistrement formulaire basé sur une requête
    Par fredpeca dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/02/2007, 12h40
  4. Sous-Formulaire basé sur une requête nécessitant des paramètes
    Par nicou50 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2006, 22h18
  5. Ouvrture Formulaire basé sur une requête paramétrée
    Par teffal dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 16h04

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