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 pour la validation de contrôles qualités de produits par commande. [AC-2013]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Formulaire pour la validation de contrôles qualités de produits par commande.
    Bonjour à tous,

    Je suis en quelque sorte un débutant sur Access (je connais les bases mais c'est la première fois que je travaille dessus dans un cas concret), et j'ai pour sujet de stage la création d'un outil facilitant la réalisation de contrôle qualités de produits à la réception d'une entreprise.

    Tout se passe très bien (les tutos du site n'y sont pas pour rien ), mais me voilà bloqué.

    La procédure : Je rentre une commande, dans chaque commande il y a un certain nombre de produits, pour chaque produit, il y a des contrôles qualités à réaliser.

    J'aimerai obtenir un formulaire pour valider (avec une case à cocher par exemple) les contrôles fait un par un (pour chaque produit de chaque commande).

    La structure de ma base est de ce genre (relations) : Table_commande ---> Table_regrouper_quantités --->Table_Produits --->Table_Regrouper_contrôle ---> Table_Description_contrôle.

    Voilà, je ne sais pas comment faire, j'imagine que je dois créer une autre table ou une requête, pour l'instant, c'est une suite d'échecs.

    PS : J'ai aussi des bases en VBA

    Merci d'avance pour votre attention.

  2. #2
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Salut,

    Si dans ta table [Table_Regrouper_contrôle] tu as les clés primaires de [Table_Produits] et [Table_Description_contrôle] pourquoi ne rajoutes tu pas un champ Oui/Non dans ta table [Table_Regrouper_contrôle] ?

    Ce qui donnerais :

    Table_Description_contrôle :

    ID Produit......Id Controle......ControleEffectue
    1......................4....................Non
    2......................7....................Oui
    3......................10..................Oui

    En revanche, si ta table [Table_Regrouper_contrôle] est seulement lié à produit ça ne marchera pas pour chaque commande et chaque ligne dans cette commande, il faut que recréer un table, par exemple [Table_Regrouper_contrôle_Ligne_Commande] qui servira à stocker pour chaque ligne de commande les contrôles à effectuer, tu pourrais faire un code VBA où lorsque tu ajoute un produit ça viens importer dans la table [Table_Regrouper_contrôle_Ligne_Commande] la liste des contrôles à faire pour ce produit.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Malheureusement, cette solution ne fonctionne pas, car si je valide un contrôle pour un produit, il sera validé dans toutes les commandes (même les futures). Je vais essayer la deuxième solution.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par martii843 Voir le message
    Salut,

    En revanche, si ta table [Table_Regrouper_contrôle] est seulement lié à produit ça ne marchera pas pour chaque commande et chaque ligne dans cette commande, il faut que recréer un table, par exemple [Table_Regrouper_contrôle_Ligne_Commande] qui servira à stocker pour chaque ligne de commande les contrôles à effectuer, tu pourrais faire un code VBA où lorsque tu ajoute un produit ça viens importer dans la table [Table_Regrouper_contrôle_Ligne_Commande] la liste des contrôles à faire pour ce produit.

    Malheureusement, cela ne fonctionne pas non plus. Car pour chaque ligne d'une commande (donc chaque produit d'une commande), il peut y avoir plusieurs contrôles à faire, d'où la complexité de la réalisation (pour un novice comme moi en tout cas

  5. #5
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Salut,

    Oui je vois ce que tu veux faite

    Il faut créer une table qui aura une clé primaire, les clé de la table où tu as tes lignes de commandes et celle qui contient la liste de tes contrôles, une case à cocher.
    Ce qui fera :
    Table: COMMANDE_LIGNE_CONTRÔLE
    ID: numauto ( ou autre)
    ID_COMMANDE_LIGNE (même type que ta clé primaire dans ta table de ligne de commande)
    ID_CONTROLE ( même type que ta clé dans ta table de contrôle)
    EFFECTUE Oui/Non

    Un exemple d'enregistrement dans cette table
    ID: 1 Ligne de commande: 1 Contrôle: 1 Effectué :oui
    ID: 2 Ligne de commande: 1 Contrôle: 3 effectué: non
    Etc

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    C'est effectivement ce que je veux.

    Raah, je n'y arrive pas, je dois faire quelque chose de travers
    Voici mes relations :
    Nom : AvancementAccess8.png
Affichages : 142
Taille : 27,7 Ko

  7. #7
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Ce que tu as fais est bon.
    Il faut juste que rajoute le champ #contrôle_code dans ta table regrouper_contrôle_ligne_commande et faire la relation entre [regrouper_contrôle _ligne_commande].[#contrôle_code] et [description_contrôle].[code_contrôle]

    Rectification..
    Rajoute dans ta table regrouper_contrôle_ligne_commande un champ id qui sera ta clé primaire de cette table, ensuite créer juste une relation entre regrouper_quantité.code_ligne_commande et regrouper_contrôle_ligne_commande.#ligne_commande et aussi entre regrouper_contrôle_ligne_commande.code_contrôle_ligne_commande et description_contrôle.code_contrôle

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par martii843 Voir le message

    Rectification..
    Rajoute dans ta table regrouper_contrôle_ligne_commande un champ id qui sera ta clé primaire de cette table, ensuite créer juste une relation entre regrouper_quantité.code_ligne_commande et regrouper_contrôle_ligne_commande.#ligne_commande et aussi entre regrouper_contrôle_ligne_commande.code_contrôle_ligne_commande et description_contrôle.code_contrôle
    Quand je fais ça, je n'obtient aucun enregistrement dans la table regrouper_contrôle_ligne_commande :/

    Edit : en plus, ta rectification revient exactement à la même chose, seul les noms des champs changent non ? Tu as peut être voulu dire autre chose

  9. #9
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Oui c'est normal car ça n'importe pas les contrôles à faire pour ce produit, c'est pourquoi il faut que tu fasse un code dans ton formulaire ou tu va renseigné le produit pour les lignes de commandes pour que quand tu sélectionne un produit, ça va importer ses contrôles dans la table regrouper_contrôle_ligne_commande

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    D'accord, je n'ai encore jamais fait d'importations dans une table via un code, je vais voir s'il y a un tuto


    Edit : Bon, je ne vais pas mentir, je ne vois pas du tout comment faire. Un bout de code ou le lien d'un tuto svp ?

  11. #11
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Points : 356
    Points
    356
    Par défaut
    Alors plutôt que tu code VBA tu vas devoir faire des requêtes : une sélection et une ajout.

    La requête sélection vise à sélectionner les contrôles [code_controle] pour le [code_produit] en question dans la table [regrouper_controle]
    Le critère sur [code_produit] est soit une variable temporaire soit un lien vers ton formulaire ( Fomulaires![TonFormulaireCommande]![TonFormulaireDeLigneDeCommande].Form![TonChampCodeProduit] )

    La requête ajout consiste à importer, dans la table [Regrouper_controle_ligne_commande] ce que la première requête a trouvé.
    Tu dois ajouter le contenu de ta requête sélection .[code_controle] au champ [code_controle_ligne_commande] de la table [Regrouper_controle_ligne_commande]

    Ensuite, tu dois ajouter le numéro de ta ligne de commande au champ [#ligne_commande] de la table [Regrouper_controle_ligne_commande]
    Pour avoir le numéro de la ligne de commande, soit tu créer un variable temporaire soit un lien vers ton formulaire ( Fomulaires![TonFormulaireCommande]![TonFormulaireDeLigneDeCommande].Form![Code_ligne_commande] ) et tu créer un champ dans ta requete ajout, par exemple LIGNE_COMMANDE : VarTemp[VarTempLigneCommande] ou LIGNE_COMMANDE : Fomulaires![TonFormulaireCommande]![TonFormulaireDeLigneDeCommande].Form![Code_ligne_commande] qui va s'ajouter au champ [code_controle_ligne_commande] de la table [Regrouper_controle_ligne_commande]


    Voilà enfin tu rentre un bout de code VBA dans ton champ produit du formulaire, après MAJ par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DoCmd.RunCommand acCmdSaveRecord
    '--- si tu utilise les Variables temporaires, sinon ne mets pas les deux prochaines lignes----
    TempVars ("[CODE_PRODUIT]") = Fomulaires![TonFormulaireCommande]![TonFormulaireDeLigneDeCommande].Form![TonChampCodeProduit].value
    TempVars ("[LIGNE_COMMANDE]") =Fomulaires![TonFormulaireCommande]![TonFormulaireDeLigneDeCommande].Form![Code_ligne_commande].value
    '-------------------------------------------------------------------------------------
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "[TA REQUETE AJOUT]"
    TempVars.RemoveAll
    Après ça, tu aura donc dans ta table [Regrouper_controle_ligne_commande] tout les contrôles du produit associé à la ligne de commande.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Un énorme merci !

    Je me tuais depuis tout à l'heure à faire un requête ajout sans requête sélection
    Et le code VBA après MAJ, n'en parlons pas...
    Passer du VBA sur Excel à du VBA sur Access, ça fait tout drôle.

    Il ne me reste plus qu'à ajouter des sécurités (en cas de fausse manip de l'utilisateur) et l'outil sera fonctionnel.

    Encore merci et bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/05/2008, 15h03
  2. [HTML] Besoin d'aide HTML pour faire suivre une requête
    Par desolation dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/07/2007, 10h26
  3. [MySQL] Besoin d'aide Lien pour Id suivant
    Par garaut dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/11/2006, 05h18
  4. Réponses: 9
    Dernier message: 12/01/2006, 13h46
  5. Besoin d'aide encore pour debugger mon programme
    Par jfjava2002 dans le forum C
    Réponses: 9
    Dernier message: 27/12/2005, 12h13

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