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 :

Comment répliquer la clef primaire d'un sous-formulaire dans le formulaire principale ? [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 59
    Points
    59
    Par défaut Comment répliquer la clef primaire d'un sous-formulaire dans le formulaire principale ?
    Bonjour,
    Une fois de plus, je fais appel à l'équipe ..car je cale sur un truc ...est-ce une bêtise ou pas... d'ores et déjà merci d'avance.
    J'ai hérité d'une database sql server, je souhaite me servir d'access pour consulter (ça c'est fait :-) mais je me suis lancé dans le défi , d'écrire dedans (en passant par des tables temporaires). Je dois écrire dans 4 tables à chaque enregistrement

    J'ai une table Entreprise, Acteur (rens. complémentaire,) , Responsable, SecteurActi

    J'ai relié ces tables (temporaires) via access ; j'ai fait un formulaire pour chaque table ; j'ai mis les tables Acteur, Respon, secteurActi en sous-formulaire.

    Pour la table Respon, et secteur Acti, il y a une clef étrangère IDEntreprise ; aucun problème, ça marche tout seul - la clef IDEntreprise est répliquée dans chaquee sous-formulaire. Chaque formulaire génère un clef primaire auto (réplication)

    En revanche pour la table Acteur, il y n' a pas clef étrangère IDEntreprise mais bien une clef étrangère IDActeur dans la table Entreprise.


    Moi souhait est donc d'avoir automatiquement IDActeur dans la table Organisme (clef étrangère IDActeur)

    J'ai essayé de mettre comme valeur par défaut (dans le formulaire Entreprise) l'IDActeur (la clef primaire) du sous-formulaire mais rien à faire, ça ne s'affiche pas ; est-ce ce que je voudrais faire est possible ?

    Un très grand merci d'avance
    Bon w-e
    Roger

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Si j'ai bien compris, les relations entre les tables sont comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ============                    =================
    Entreprise                      Responsable
    ============                    =================
    IDEntreprise (1) -----|         IDResponsable
    .                     |---- (N) IDEntreprise#
    .                               .
    
    ============                    =================
    Entreprise                      SecteurActi
    ============                    =================
    IDEntreprise (1) -----|         IDSecteurActi
    .                     |---- (N) IDEntreprise#
    .                               .
    
    ============                    =================
    Entreprise                      Acteur
    ============                    =================
    IDEntreprise          |---- (1) IDActeur
    IDActeur# (N)---------|         .
    .                               .
    Plutôt que de mettre un sous-formulaire pour la table Acteur, tu pourrais mettre le champ Entreprise.IDActeur#
    dans une zone de liste modifiable au lieu d'une zone de texte.
    Cette liste te permettrait d'afficher tous les enregistrements de la table Acteur et d'en choisir un.
    Cela permettrait aussi d'afficher une autre colonne de la table Acteur à la place de l'id (IDActeur).

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 59
    Points
    59
    Par défaut merci !
    Bonsoir Cher LedZepII,
    Je t'ai encore sollicité et tu as encore répondu présent et très rapidement. Je te remercie et te suis sincèrement reconnaissant. Tes collègues doivent être heureux d'avoir une personne comme ça dans leur équipe !

    J'ai essayé ta proposition de solution (si je l'ai bien comprise).
    En réalité, elle réglait une partie du problème mais pas l'autre. Relier les deux tables ensembles via la liste était une vraie bonne idée.... mais la clef unique devait être créée (donc il ouvre un formulaire, écrive les infos complémentaires, le commentaire) puis dans un second temps l'utilisateur choisirait dans la liste (si j'ai bien suivi) l'info correspondant ; je connais les utilisateurs :-), ça va vite les ennuyer ; cependant grâce à ton idée, j'ai réfléchi à un truc tordu...; si j'ajoutais une clef étrangère Entreprise dans ce champs acteur (qui ne sera pas exportée par la suite dans mssql), alors je créée une relation supplémentaire entre Organisme et Acteur.... ça m'arrange car quand j'ajoute le sous-formulaire, automatiquement à l'instar des autres sous-formulaires, la clef OrganismeID me garantit un lien de ce sous-formulaire avec le formulaire entreprise. Ensuite, j'ai ajouter un code événement (après MAJ) dans les différents champs du sous-formulaire Acteur pour recopier la clef primaire dans le champ IDActeur du formulaire Entreprise.

    ça peut tjrs servir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commentaire_AfterUpdate()
    Forms![Entreprise_TMP]!ActeurID.Value = Forms![Entreprise_TMP]![Acteur_TMP]!ID.Value
    End Sub
    J'ai fait tout ça en brouillon mais ça a l'air de fonctionner. C'est tordu mais ça marche :-).
    Je considère que l'affaire est résolue. Sur ce coup-là, Cher Led Zep II, tu m'as encore bien aidé et inspiré ! Merci de ton investissement dans ce forum !
    Bien à toi , Roger

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

Discussions similaires

  1. Héritage : clef primaire suivant la sous classe
    Par youkoun dans le forum Hibernate
    Réponses: 0
    Dernier message: 16/06/2010, 15h39
  2. comment modifier mes clefs primaires
    Par turican2 dans le forum Débuter
    Réponses: 5
    Dernier message: 18/10/2008, 09h11
  3. comment récupérer la clef primaire
    Par aedius dans le forum PhpMyObject
    Réponses: 2
    Dernier message: 16/01/2008, 23h30
  4. [MEA]Comment représenter 1 clef primaire composée
    Par marman dans le forum Schéma
    Réponses: 7
    Dernier message: 29/01/2007, 15h35
  5. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06

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