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

Modélisation Discussion :

Relations impossibles entre 2 tables


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Relations impossibles entre 2 tables
    Bonjour

    Je ne suis pas Dev, mais ai qq notions et j'ai eu connu qq languages qd même.
    Je tente de faire un petit quelque chose sous Access 2016 mais le modèle pose pb alors que c'est bidon de toute évidence.

    Comme d'autres gars ici, impossible de créer UNE relation correcte entre 2 tables

    Une table catalog contient une liste de références articles (importée depuis un xls) Chaque réf est unique (vérifiée dans EXCEL et par une requête Access de recherche de doublons)
    Il y a ensuite la désignation et 3 autres champs qui n'entrent pas non plus dans les relations.

    une table col_made est destinée à contenir la liste d'objet fabriqués. un objet reprend n'importe quelle ref_art (n articles fabriqués pour 1 Ref_art quelconque du catalogue).
    Chaque objet fabriqué se voit attribuer un n° de série unique "sn" et un n° de batch non unique. Ces 2 données seront saisies manuellement. Cette table est vierge (j'ai saisie un record bidon dedans pour les tests)

    Quoique je tente la relation ne se créer que si je ne demande pas l'intégrité et reste alors de type "indéfini" .
    j'ai tenté de mettre des clés primaires sur ID, sur Ref_art, d'en faire une clé composée, la relation est toujours rejetée.
    Pour moi la liaison devrait être de Ref_art vers Ref_art de 1 à n. voilà . comprends pas avec Access..

    la copie écran ci-dessous permet de voir ca (ici un test sans clé à gauche)

    Je suis une bille mais bon là je m'arrache les cheveux qui me restent.

    Merci
    Nom : Capture.JPG
Affichages : 629
Taille : 19,2 Ko

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Bonjour,
    Au début, pour comprendre les jointures, lire quelques bons tutos comme https://mhubiche.developpez.com/Access/tutoJointures/

    cordialement

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Je vais re re regarder le concept.

    Mais j'ai à la maison 2 fils en études sup de dev. (bac+3 et B+5) ils n'ont rien compris à Access.
    on est d'abords passé par JMerise tout était nickel.

    mais rien ne colle dans ACCESS
    plus un partenaire pro du sql depuis 40 ans qui ne connait pas plus Access et qui reste comme moi comme 2 ronds de flanc devant l'interface des relations ACCESS....

    si quelqu'un pouvait déja juste me dire ce qu'il ferait LUI sur mon exemple que je pense basique de chez basique...

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,
    À priori, Ref_art n'est pas défini comme étant indexé et unique dans la table catalog. Dès que ce sera fait, on peut définir la relation 1-plusieurs et l'intégrité référentielle entre les 2 tables par les champs ref_art.
    Cordialement

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Si j'ai bien compris vous avez des articles utilisés pour fabriquer des objets.
    Dans ce cas, je ferais 3 tables
    tArt pour les articles
    tObj pour les objets
    tFbr pour avoir les articles contenus dans les objets (Fbr comme fabrication)
    Je ne sais pas s'il faut mettre les batch dans la table tObj ou la table tFbr. Je pencherais plutôt pour dans tFbr.
    Nom : Fabr.png
Affichages : 966
Taille : 6,6 Ko
    Cordialement.
    Fichiers attachés Fichiers attachés

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Bonjour,
    À priori, Ref_art n'est pas défini comme étant indexé et unique dans la table catalog. Dès que ce sera fait, on peut définir la relation 1-plusieurs et l'intégrité référentielle entre les 2 tables par les champs ref_art.
    Cordialement
    Merci.
    Mais c'est comme ca que j'avais démarré.

    L'unique manière que je vois pour déclarer un champ Access comme étant indexé et unique, c'est d'en faire la clé primaire.
    Ce que j'ai tenté x fois soit lui tout seul soit en clé composée avec l'id.
    Si je fais ca je ne PEUX PAS enregistrer la modif. j'ai un pop up qui dit:

    "Modifications non effectuées: risque de doublons dans champs index, clé principale ou relation interdisant les doublons. Modifiez des champs contenant des doublons, enlevez ou redéfinissez l'index pour permette des doublons et recommencez."

    ceci m'est parfaitement incompréhensible.
    Car à ce stade il n'y a encore aucune relation définie et que cette table catalog ne contient aucun doublon (comme dit au debut, vérifié plusieurs fois y compris avec une requettes Access). et les bricoalge de requêtes que j'ai essayé sont supprimés.

    Donc ..?.???

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Si j'ai bien compris vous avez des articles utilisés pour fabriquer des objets.
    Dans ce cas, je ferais 3 tables
    tArt pour les articles
    tObj pour les objets
    tFbr pour avoir les articles contenus dans les objets (Fbr comme fabrication)
    Je ne sais pas s'il faut mettre les batch dans la table tObj ou la table tFbr. Je pencherais plutôt pour dans tFbr.
    Nom : Fabr.png
Affichages : 966
Taille : 6,6 Ko
    Cordialement.
    Merci.

    Non ce n'est pas ca.

    il y a juste un catalog d'articles possibles avec leur Ref_art (code article ou références commerciale ou part number comme vous voulez)
    et dans col_made ce serait la liste (grandissante) de chacun de ces articles qu'on aura fabriqués.
    1 serial number étant unique pour identifier l'article qui peut prendre n'importe quelle réf commerciale.
    Ce sont des consommables pour la chromatographie: Imaginez que nous fabriquions des cartouches de toner de différents modèles a,b, c, ou d, etc (là j'ai 2000 Ref_art) et que chaque cartouche reçoive un s/n.

    voilà c'est juste ca.
    une sorte de suivi de production.

  8. #8
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Re-bonjour,
    Non, un champ peut être indexé et unique sans qu'il soit un clé primaire.
    Il n'y a pas besoin d'utiliser une clé composée.
    Il faut définir les propriétés du champ comme étant "indexé" et "sans doublon" en mode création.
    Cordialement

  9. #9
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Alors, ce serait plutôt ceci:
    Nom : ObjArt.png
Affichages : 909
Taille : 3,8 Ko
    avec ObjSn (serial number) forcé sans doublon.

    Cordialement.
    Fichiers attachés Fichiers attachés

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Re-bonjour,
    Non, un champ peut être indexé et unique sans qu'il soit un clé primaire.
    Il n'y a pas besoin d'utiliser une clé composée.
    Il faut définir les propriétés du champ comme étant "indexé" et "sans doublon" en mode création.
    Cordialement
    ok..mais meme punition et meme message de refus.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Alors, ce serait plutôt ceci:
    Nom : ObjArt.png
Affichages : 909
Taille : 3,8 Ko
    avec ObjSn (serial number) forcé sans doublon.

    Cordialement.

    Merci c'est plus clair
    Mais ca ne marche pas chez moi les : ref art ne sont PAS des num. Ce sont des textes courts: la relation comme dans votre exemple est refusée (associer un num à un text court)
    Fichiers attachés Fichiers attachés

  12. #12
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    elz04,
    tu dois ajouter la colonne Artid à la table Tobj (en tant que clé étrangère) et créer la relation entre les 2 Artid

    cdlt

  13. #13
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Effectivement, c'est l'id qu'il faut lier entre les tables (et pas les ref).
    Nom : CatMade.png
Affichages : 880
Taille : 5,1 Ko
    Personnellement je préfère utiliser des libellés très courts pour nommer les tables et les champs car avec des noms longs cela devient vite illisible dans les requêtes et les macros.

    A noter qu'il y a un doublon dans vos références d'articles.

    En attaché, un début "à ma façon". L'état est basé sur une requête.
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par micniv Voir le message
    elz04,
    tu dois ajouter la colonne Artid à la table Tobj (en tant que clé étrangère) et créer la relation entre les 2 Artid

    cdlt
    Bonjour


    Je me remets dessus. Mais là je ne sais pas ce que ca veut dire. Enfin plutôt comment on fait cette manip ?

    Merci

  15. #15
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    C'est simple. Tu ajoutes ArtId (de type Long) à la table tMade et tu crées la relation indiquée ci-dessus.

    cdlt

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Effectivement, c'est l'id qu'il faut lier entre les tables (et pas les ref).
    Nom : CatMade.png
Affichages : 880
Taille : 5,1 Ko
    Personnellement je préfère utiliser des libellés très courts pour nommer les tables et les champs car avec des noms longs cela devient vite illisible dans les requêtes et les macros.

    A noter qu'il y a un doublon dans vos références d'articles.

    En attaché, un début "à ma façon". L'état est basé sur une requête.
    Bonne continuation.


    Merci beaucoup.

    Ca me permet d'avancer.
    J'avais fait un form pour remplir un état avec les données de ma table catalogue (qui marchait sur ma DB initiale) et malgré mes efforts dans votre version impossible de le refaire fonctionner .
    J'ai bien transcris les noms de champs mais rien à faire : un bouton état aperçu de prend pas la donnée ArfRef du form il met un pop up pour le demander en saisie...


    le bouton déclenche caj'en ai mis 2 pour essayer des trucs ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ArtRef]=Formulaires!fCat![ArtRef]
    le pop affiche "Ref_art"...

    entre les noms des champ des table et ceux du form il y a peut-être une confusion... ?
    Fichiers attachés Fichiers attachés

  17. #17
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Voici une version corrigée ...
    dont j'ai pris la liberté de renommer quelques objets selon mes habitudes

    Bonne continuation
    Fichiers attachés Fichiers attachés

  18. #18
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    et encore une autre façon de faire, enfin plusieurs. A vous de voir ce qui convient.

    Le problème dans votre application est
    - qu'il y a eu inversion entre ArtRef et RefArt
    - qu'il est fait appel au formulaire f_Cat au lieu de fCat

    Pour ce qui est du principe, si pour un article il est fabriqué plusieurs objets (chacun recevant son numéro de série et batch), il faut que la fiche "article" puisse contenir plusieurs enregistrements "objet" (et pas un seulement).

    Je n'ai pas compris si vous voulez produire une fiche à la fois pour chaque objet, ou toutes les fiches des objets de l'article.

    Cordialement.
    Fichiers attachés Fichiers attachés

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Merci


    mais là je suis paumé. Désolé "il y a eu inversion entre ArtRef et RefArt " je ne sais pas faire la différence
    Vous n'avez pas modifié FCat et mis un FCat2?
    FCat2 est supposé fonctionner comment ? et pourquoi une ligne en bas (celle qui a le bouton )? Car ca dit aucune fiche. (vu que c'est du VB et pas une Macro incorporée je ne sais pas faire)

    Nos fabrications s'appellent des "colonnes HPLC". C'est très artisanal.
    Quand on vient d'en fabriquer une on doit la tester dans le labo. Elle du modèle ArtRef de la table catalogue (référence commerciale, avec ses caractéristiques).
    On peut donc fabriquer X fois une colonne d'une réf quelconque. Chaque colonne fabriquée est identifiée par son S/N unique + toutes les caractéristiques communes de sa ref commerciale. (dans une version à venir elle sera stockée dans ColMade)

    Le form est pour le moment destiné à:
    • choisir dans le select déroulant une ref article du catalogue.
    • A ce stade les champs s/n et batch sont vierges. C'est le système de test qui va attribuer un S/N et on aura le batch en même temps une fois le test terminé.
    • Le form est donc rempli avec les données de cette ref, et les 2 champs S/N et batch sont vides.


    Puis
    Dans ma 1ère version il s'agit d'inputs indépendants que doit saisir l'opérateur une fois qu'il les connait en fin de test (s/n et batch).
    Une fois ces informations saisies elles sont plaquées dans l'état qui est ensuite manuellement exporté en pdf. (il y a encore des manip manuelles car il faut y ajouter une image issue d'un système non communiquant)

    Pour une évolution en V2 on devrait pouvoir stocker dans ColMade ces données.
    (les inputs S/N et batch une fois saisis avec un bouton pour créer un nouveau record ds colMade) afin de retrouver par S/N, par Ref ..ce qui a été fabriqué.
    idéalement j'aurais aimé pouvoir créer depuis le Form Fcat l'état en PDF pour chaque S/N et le stocker en tant que pièce jointe.

Discussions similaires

  1. [AC-2007] Relation cyclique entre deux tables
    Par GonzooJC dans le forum Access
    Réponses: 9
    Dernier message: 09/11/2011, 14h36
  2. [Modèle Relationnel] Relations bidirectionnelles entre 3 tables
    Par Tchupacabra dans le forum Schéma
    Réponses: 2
    Dernier message: 06/11/2008, 14h31
  3. [SQL] Relations complexes entre deux tables
    Par simonoche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2007, 00h23
  4. [novice] relation fk entre deux tables
    Par localhost dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/10/2005, 06h33
  5. relation double entre deux tables
    Par thibautche dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/05/2005, 11h31

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