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 :

Introduire via formulaire une donnée de table liée à une autre


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2016
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 171
    Points : 79
    Points
    79
    Par défaut Introduire via formulaire une donnée de table liée à une autre
    Je dispose de 3 tables T_FourNouveau pour ajouter un fournisseur, T_Codes postaux contenant les codes postaux de toutes les villes belges, leurs noms et le code ISO du Pays, enfin T_Pays contenant le code ISO du pays et le nom du pays. Dans un formulaire F_FourNouveau, j'introduis la raison sociale, le nom du fournisseur, son adresse, soit le code postal qui génère la localité et le code ISO du Pays, soit la localité qui génère le code postal et le code Iso du pays. Ensuite vient un champ dans lequel je souhaiterais faire apparâitre le nom du pays en fonction du code ISO de celui-ci, mais n'enregistrer dans la T_FourNouveau que le code ISO du pays. C'est là que ça coince. Je ne parviens pas à construire une requête qui permettrait d'aller chercher le nom du pays dans la T_Pays, l'afficher dans le formulaire et n'enregistre dans la T_FourNouveau que le code ISO du pays. Quelqu'un aurait-il rencontré un cas semblable ? Merci pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 760
    Points : 14 795
    Points
    14 795
    Par défaut
    bonjour,
    Ensuite vient un champ dans lequel je souhaiterais faire apparâitre le nom du pays en fonction du code ISO de celui-ci, mais n'enregistrer dans la T_FourNouveau que le code ISO du pays.
    Alors pourquoi avoir créé le champ Four_pays dans la table T_FourNouveau ?
    Si le champ ne sert à rien il faut le supprimer de la table et mettre le champ en indépendant dans le formulaire (cela revient à ne rien mettre dans la propriété "Source contrôle")
    Ensuite pour l'alimenter, le principe est le même que pour le code ISO (Four_CodePays): ajouter la table T_Pays dans la requête de la propriété "Contenu" de la liste déroulante Four_CP faire la jointure entre les 2 tables, ajouter la colonne Pays_Nom et modifier les propriétés sous-jacentes de la liste déroulante (curieusement, la propriété "Nbre colonnes" était déjà à jour ...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [T_Codes postaux].Cp_CPLocalite, [T_Codes postaux].CP_NomLocalité, [T_Codes postaux].CP_ISOPays, T_Pays.Pays_Nom FROM [T_Codes postaux] INNER JOIN T_Pays ON [T_Codes postaux].CP_ISOPays = T_Pays.Pays_ISO ORDER BY [T_Codes postaux].Cp_CPLocalite, [T_Codes postaux].CP_NomLocalité;
    puis dans l'évènement AfterUpdate de Four_CP, alimenter le nom du pays:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Me.Four_Pays = Me.Four_CP.Column(3)
    enlever la commande DoCmd.GoToControl "Four_Pays" qui n'a plus lieu d'être puisque le champ est devenu non modifiable.

    Je rappelle quand même que les contrôles de cohérence doivent se faire sur l'évènement avant mise à jour (champs concernés et formulaire) et non pas sur perte focus, évènement qui survient APRES mise à jour, donc trop tard pour effectuer une annulation de saisie incomplète.

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2016
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 171
    Points : 79
    Points
    79
    Par défaut Introduire via formulaire une donnée de table liée à une autre
    Merci bien tee_grandbois. Présenté comme cela, ça devient beaucoup plus clair. Je vais suivre tes conseils.
    Bonne fin de journée.

  4. #4
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2016
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 171
    Points : 79
    Points
    79
    Par défaut Introduire via formulaire une donnée de table liée à une autre
    Rebonjour Tee_grandbois.
    J'ai essayé de suivre les instructions que vous m'aviez transmises hier, mais il y a sûrement quelque chose qui m'échappe, car après une petite modification du formulaire, niveau présentation, j'ai modifié la source de contrôle du champ Four_CP mais cela ne fonctionne plus. Je n'ose pas tout modifier de peur de faire pire que bien. Merci encore pour votre aide.
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 760
    Points : 14 795
    Points
    14 795
    Par défaut
    bonjour,
    la requête ne correspond pas vraiment au code fourni:

    Nom : _0.JPG
Affichages : 38
Taille : 54,3 Ko

    voici ce que donne l requête correcte:

    Nom : _1.JPG
Affichages : 38
Taille : 43,8 Ko

    et le code de mise à jour du nom du pays:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Four_CP_AfterUpdate()
      Me.Four_Local = Me.Four_CP.Column(1)
      Me.Four_CodePays = Me.Four_CP.Column(2)
      Me.Indication_Four_Pays = Me.Four_CP.Column(3)
      DoCmd.GoToControl "Four_AssTVA"
    End Sub
    et la base corrigée: Correctif_Database12.zip

  6. #6
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2016
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 171
    Points : 79
    Points
    79
    Par défaut Introduire via formulaire une donnée de table liée à une autre
    Merci bien Tee_grandbois,
    La solution paraissait cependant clairement expliquée dans la 1ère répponse; j'ai l'impression, parfois, de ne plus comprendre ce que je lis.
    Une excellente journée; encore un tout grand merci.

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

Discussions similaires

  1. [Débutant] Mise à jour d'une table via formulaire avec champs liés
    Par DaCoolG dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 28/01/2015, 14h09
  2. [AC-2003] Annuler une entrée dans un sous-formulaire - Une autre solution?
    Par Dermochelys dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/12/2009, 09h33
  3. [AC-2007] Création Formulaire en tabulaire avec tables liés
    Par cookiedelu dans le forum IHM
    Réponses: 4
    Dernier message: 01/12/2009, 19h50
  4. Réponses: 1
    Dernier message: 19/11/2007, 19h27
  5. Tri des lignes d'une Table via Formulaire
    Par kato dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 12h53

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