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 :

Récupération d'un choix dans une liste déroulante pour faire une autre liste [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 12
    Par défaut Récupération d'un choix dans une liste déroulante pour faire une autre liste
    Bonjour,

    je travaille sur une base de données pour le suivi nutritif d'une personne et j'aimerais pour récupérer l'id d'une catégorie d'aliment via sois une liste déroulante sois une feuille de donnée.

    Ma structure est la suivante, mon frmPrincipale contient 4 onglet, dans le 3ème se trouve un SfrmCategorieAliment contenant une liste déroulante avec les catégories d'aliments et un système de recherche qui m'affiche les résultats dans une feuille de donnée. J'aimerais, sois par une sélection dans la liste déroulante, sois par une clique dans la feuille de donnée être renvoyer sur le 4ème onglet contenant lui une seul liste déroulante. Cette liste déroulante ne dois afficher que les aliments faisant partie de la catégorie sélectionnée juste avant.

    J'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    maCategorie = [Forms].[frmPrincipale].[sfrmCategorieAliment].[Form].
    [ListeCategorie]
        txtSQL = "SELECT req_tAliment_IDCategorie.IDAliment, req_tAliment_IDCategorie.NomAliment, req_tAliment_IDCategorie.IDCategorie FROM req_tAliment_IDCategorie WHERE (([IDCategorie] Like " & maCategorie & "));"
        Forms![frmPrincipale]!sfrmSpecifiqueAliment.Form.ListeAliment.RecordSource = txtSQL
        Forms![frmPrincipale]!sfrmSpecifiqueAliment.Form.ListeAliment.Requery
    Mais lorsque je sélectionne une catégorie, j'ai l'erreur suivante : " Erreur d'exécution '438': Propriété ou méthode non gérée par cet objet".
    J'ai séparé ma requête SQL pour voir plus précisément d'où provient l'erreur et elle vient de la 1ère ligne. Lors du débogage la [ListeCategorie] contient bien l'id comme il faudrait mais maCategorie reste vide...

    Est-ce que quelqu'un aurait une solution SVP.
    D'avance, merci

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Essaie avec un point d'exclamation entre [Forms] et [frmPrincipale]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maCategorie = [Forms]![frmPrincipale].[sfrmCategorieAliment].[Form].[ListeCategorie]
    D'une manière générale :
    Le point (.) est normalement suivi d'une propriété ou d'une méthode.
    Le point d'exclamation (!) est, quand à lui, suivi du nom d'un élément dans une collection.
    Forms est une collection.

    Ceci étant, cela devrait aussi fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maCategorie = [Forms].frmPrincipale.[sfrmCategorieAliment].[Form].[ListeCategorie]
    Il y a un point, mais pas de crochets autour du nom du formulaire, lequel ne contient pas d'espaces.

    A+

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 12
    Par défaut Ajout balise de code (#), suivant les règles du forum.
    J'ai essayer de ces deux façons la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    maCategorie = [Forms]![frmPrincipale].[sfrmCategorieAliment].[Form].
    [ListeCategorie]
        txtSQL = "SELECT req_tAliment_IDCategorie.IDAliment, req_tAliment_IDCategorie.NomAliment, req_tAliment_IDCategorie.IDCategorie FROM req_tAliment_IDCategorie WHERE (([IDCategorie] Like " & maCategorie & "));"
        Forms![frmPrincipale]!sfrmSpecifiqueAliment.Form.ListeAliment.RecordSource = txtSQL
        Forms![frmPrincipale]!sfrmSpecifiqueAliment.Form.ListeAliment.Requery
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![frmPrincipale]!sfrmSpecifiqueAliment.Form.ListeAliment.RecordSource = txtSQL
    j'ai aussi essayer de changer les "!" et "." mais toujours le même problème.
    Enlever les crochets n'a rien changer non plus.

    Merci, A+

  4. #4
    Expert confirmé
    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
    Par défaut
    Et le nom du contrôle sous-formulaire est bien sfrmCategorieAliment ?
    Il n'est pas resté avec un nom par défaut du genre Fille42 ?

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 12
    Par défaut
    Oui !

  6. #6
    Expert confirmé
    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
    Par défaut
    Va dans l'éditeur Visual Barsic (Alt+F11)
    Affiche la fenêtre d'exécution (Ctrl+G)

    Dans la fenêtre d'exécution tape
    ? Forms!frmPrincipale.Name
    et appuie sur Entrée.
    Répète l'opération en ajoutant le membre suivant
    ? Forms!frmPrincipale!sfrmCategorieAliment.Name
    et ainsi de suite
    ? Forms!frmPrincipale!sfrmCategorieAliment.Form.Name
    ? Forms!frmPrincipale!sfrmCategorieAliment.Form!ListeCategorie.Name
    ? Forms!frmPrincipale!sfrmCategorieAliment.Form!ListeCategorie.Value
    Le .Name c'est pour que ça affiche quelque chose.

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

Discussions similaires

  1. [XL-2007] Liste déroulante conditionnée suivant d'autres listes déroulantes
    Par stueur666 dans le forum Excel
    Réponses: 6
    Dernier message: 01/10/2013, 11h09
  2. Réponses: 16
    Dernier message: 04/10/2007, 14h06
  3. Réponses: 4
    Dernier message: 22/09/2006, 09h46
  4. Combinaison de liste déroulante pour créer une requete
    Par jeje22 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/09/2006, 17h23
  5. Réponses: 2
    Dernier message: 01/09/2006, 01h02

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