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

VBA Access Discussion :

Mise à jour 2 champs formulaire à partir de liste déroulante s'appuyant sur une table de référence [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 61
    Points
    61
    Par défaut Mise à jour 2 champs formulaire à partir de liste déroulante s'appuyant sur une table de référence
    Bonjour,

    suite à la solution proposée par madefemere qui convient tout à fait pour initialiser 2 champs à partir de la référence d'une table de référence à 'louverture du formulaire, je souhaite maintenant réaliser l'opération plus compliquée .

    Je m'appuie sur l'exemple fourni par "madefemere" pour expliquer mon problème et je joins le fichier zippé de la base access.
    J'ai rajouté dans la table de référence d'autres domaines fonctionnels (02-Tax, 05-Legal) pour bien expliquer l'objectif

    1/ Mon objectif est de sélectionner dans la liste déroulante du champ "domaine fonctionnel niveau 1" du formulaire, le bon domaine fonctionnel => cela implique ,dans la liste déroulante, de faire un regroupement et de n'afficher que les noms des domaines fonctionnels uniques type
    03-Finance
    02-Fiscalité
    05-Juridique

    Actuellement, je liste toute la table (cf img liste déroulante DF1.jpg ).
    => Une fois sélectionné, la mise à jour du numéro de domaine fonctionnel doit se faire dans la Table donnee

    2/ Une fois sélectionné le domaine fonctionnel niveau 1 ( ex : 03-Finance ), je souhaite que dans le champ "domaine fonctionnel niveau 2", je puisse lister uniquement les libellés des noms des domaines fonctionnels niveau 2 attachés au domaine fonctionnel niveau 1. Ainsi, lorsque je cliques sur la liste déroulante du domaine fonctionnel niveau 2, je dois voir apparaître uniquement pour l'exemple choisi :

    -blanc-
    Comptaibilité et reporting
    Gestion et comunication financières, développement

    Actuellement, je liste toutes les références de niveau 2 des domaines fonctionnels (cf img liste déroulante DF2.jpg ).

    => Une fois sélectionné, la mise à jour du numéro de domaine fonctionnel doit se faire également dans la Table donnee

    Merci par avance pour votre aide.
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 085
    Points : 5 200
    Points
    5 200
    Par défaut
    Bonsoir,

    Pour la 1ere liste il suffit de préciser "select distinct" dans son rowsource pour éliminer les doublons
    Pour la 2e liste il y a plusieurs solutions, j'utilise celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub liste2_Enter()
    liste2.RowSource = "SELECT niveau2 FROM MaTable where niveau1=" & liste1 & " union select '-blanc-' from MaTable ORDER BY 1;"
    End Sub
    L'union sert à ajouter le choix blanc et le distinct est alors implicite.
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 856
    Points : 3 427
    Points
    3 427
    Par défaut
    Bonjour marcelisa2, nico84,

    Avec la structure de tes tables c'est impossible de faire ce que tu veux directement. Pour arriver à une solution qui reflète tes désirs le CboDomaineFoncti1 doit être indépendant. Le N° Domaine fonctionnel doit avoir une colonne de plus. Tu dois modifier la source avec du VBA. Je t'ai fait un exemple.

    Bonne journée
    Fichiers attachés Fichiers attachés
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 61
    Points
    61
    Par défaut
    Bonsoir,

    Merci beaucoup Robert1957 & nico84
    J'ai analysé la solution. C'est pratiquement ce que je recherche. Il reste un point.

    Une fois mis à jour le numéro de domaine fonctionnel dans la Table des données, à l'ouverture suivante du formulaire, les 2 champs domaines fonctionnel niv1 et niv2 , n'affichent pas exactement les information issues de la table de référence. Ainsi pour le numéro 126 enregistré dans la table de donnée, nous devrions ouvrir avec "02-Fiscalité" en domaine fonctionnel niv1 et "Conseil fiscal et gestion" en domaine fonctionnel niv2. actuellement, nous avons les anciennes valeurs "03-Finances" et " " pour les 2 champs.

    Merci encore pour votre aide
    cordialement

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 856
    Points : 3 427
    Points
    3 427
    Par défaut
    Bonjour marcelisa2,

    Petit oubli de ma part, il faut rafraichir le CboDomaineFonction1 sur l'événement Form_Current:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If Not IsNull(Me.N°_Domaine_fonctionnel) Then
            Me.CboDomaineFoncti1 = Me.N°_Domaine_fonctionnel.Column(1)
        End If
    Bonne soirée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 61
    Points
    61
    Par défaut
    Bonjour Robert1957
    Merci beaucoup. C'est parfait.
    Juste une dernier point.

    Concernant le dernier point, si le champ n° domaine fonctionnel n'est pas visible sur le formulaire, comment réinitisalise t-on les 2 champs Domaine fonctionnel niv1 et niv2 à la prochaine ouverture du formulaire?

    Encore merci pour les rapides retours.

  7. #7
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 856
    Points : 3 427
    Points
    3 427
    Par défaut
    Bonjour marcelisa2,

    S'il est juste invisible mais toujours présent il n'y a pas de problème.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 61
    Points
    61
    Par défaut
    bonjour Robert1957
    Merci encore.
    Sachant qu'il y a une liste déroulante au niveau du champ, j'ai essayé de le rendre invisible sans succès. comment peut on effectuer l'opération?
    Merci

  9. #9
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 856
    Points : 3 427
    Points
    3 427
    Par défaut
    Bonjour marcelisa2,

    En mode création, dans la Feuille de propriétés, onglet Format à la ligne Visible = Non

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 61
    Points
    61
    Par défaut
    Bonjour Robert1957,

    Pour ce dernier point, je n'avais probablement pas les yeux en face des trous
    C'est parfait. C'est tout à fait ce que je cherchais.
    Merci encore

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/12/2014, 21h41
  2. Réponses: 2
    Dernier message: 11/05/2013, 13h19
  3. Réponses: 1
    Dernier message: 02/05/2013, 21h19
  4. Réponses: 8
    Dernier message: 11/02/2010, 17h18
  5. Réponses: 5
    Dernier message: 12/06/2006, 11h27

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