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 :

Formulaire - affichage d'une page d'onglet en fonction des valeurs d'une liste de choix [AC-2007]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chercheur en Sciences Humaines
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chercheur en Sciences Humaines
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut Formulaire - affichage d'une page d'onglet en fonction des valeurs d'une liste de choix
    Bonjour,

    Je suis en train de développer une base de données pour le dépouillement et l'exploitation de comptabilités médiévales.
    Je possède (entre autres) une table "mentions", avec une entrée par ligne comptable (recette ou dépense). J'ai développé un modèle différent en fonction du type d'opération : ainsi, pour les travaux, je n'ai pas besoin d'afficher les mêmes champs que pour les salaires ou les "dépenses communes"

    Mon formulaire se présente donc avec une liste de choix déroulante, indiquant le type d'opération (que j'ai appelé "classe" : imposition, travaux, salaires, dépense commune, voyages, ...), puis en dessous un jeu d'onglets, chaque page d'onglet présentant le modèle de saisie ad-hoc.

    Ce que j'aimerais, c'est que quand une classe est sélectionnée dans la liste déroulante, la page d'onglet correspondante s'affiche automatiquement. Soit de manière instantanée, soit à l'affichage ou "rechargement" du formulaire.

    Je précise que je ne maîtrise pas du tout le VBA. Je ne suis donc pas contre une petite exégèse du code histoire de comprendre les commandes et où cela peut éventuellement foirer.

    Et avant toute question, j'avais à l'origine créé une table différente par classe, mais, en plus d'alourdir la base et les relations, cela ne me convenait pas quand à la gestion des personnes mentionnées (car oui, je m'intéresse aussi aux noms apparaissant dans les comptabilités).

    Merci bien !

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 129
    Par défaut
    Bonjour,

    Pour afficher l'onglet choisi il suffit d'un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    malistederoulante_afterupdate
    select case malistederoulante
    case xxx : moncontroleonglet = 1
    case xxx : moncontroleonglet = 2
    case xxx : moncontroleonglet = 3
    ...
    end select
    end sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chercheur en Sciences Humaines
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chercheur en Sciences Humaines
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut
    Merci de cette réponse !

    Donc, si je comprends bien

    -à la place de "malistedéroulante" je mets l'identifiant d'objet de ma liste
    -à la place de "xxx" je mets la valeur de la case en question
    -à la place de "moncontroleonglet" je mets l'identifiant d'objet de mon onglet

    Mais... où est-ce que je le saisis ? Dans les propriétés du formulaire, ou dans les propriétés de la liste déroulante ?

    Au plaisir,

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 962
    Par défaut
    Bonsoir,
    la réponse est dans le code fourni par nico84 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    malistederoulante_afterupdate

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chercheur en Sciences Humaines
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chercheur en Sciences Humaines
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut
    Bonsoir,

    j'ai bien compris, mais j'en suis toujours au même point : ou est-ce que je saisis le code ? ou est-ce que je le créé ?
    J'ai beau chercher, je ne trouve pas comment créer ET appliquer une procédure événementielle. La console VBA s'affiche, le code aussi. Si je rentre le code directement dans la case correspondante dans "propriétés", Access me dit qu'il ne trouve pas la macro de référence.

    Bref, comment créé-t-on vraiment une procédure événementielle ? Quelle est l'étape pour passer du code à sa mise en application ?

    Je vous l'ai dit, je ne maitrise rien...

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 129
    Par défaut
    Sur clic-droit "propriétés" onglet "évènements" choisir "procédure événementielle" dans le menu déroulant en face de "après mise à jour" puis cliquer sur ... pour saisir le code

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Chercheur en Sciences Humaines
    Inscrit en
    Décembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chercheur en Sciences Humaines
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2016
    Messages : 4
    Par défaut
    Ca y est j'ai compris !

    Pour tout dire, je n'avais pas spécialement compris que la console VBA s'enregistrait "automatiquement". Je pensais qu'il fallait rentrer le code directement dans la case "propriétés", ou bien enregistrer le code pour ensuite appeler le module créé (je ne sais pas si je suis bien clair, mais je me comprends).

    Merci pour votre temps !

    (je ne coche pas "résolu" de suite, des fois que...)

    [EDIT] Ca Marche !!!

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

Discussions similaires

  1. [XL-2013] créer une boucle pour créer des onglets en fonction des valeurs d'une colonne
    Par BOUJ08 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/02/2016, 11h46
  2. envoyer des valeurs depuis une page web a une autre
    Par freddy000 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/01/2011, 13h23
  3. récupérer des valeurs sur une page web
    Par houwa dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/07/2008, 14h27
  4. passer des valeurs d'une page à l'autre
    Par casaoui dans le forum ASP.NET
    Réponses: 8
    Dernier message: 13/06/2007, 17h55

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