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 :

Impossible de sélectionner une valeur dans la liste déroulante!


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Impossible de sélectionner une valeur dans la liste déroulante!
    Actuellement sous Access 2003, j'essaie de créer un "drop down list" dont les valeurs disponibles proviennent d'un code VBA (voir plus bas). Grosso modo, j'essaie d'afficher dans mon drop down list le nom des tables d'une autre base de données Access. Tout fonctionne très bien, sauf qu'il m'est impossible de sélectionner une valeur, et ce, même si la propriété "Verrouillé" de ma liste est à "Non".

    J'aimerais pouvoir faire ma sélection (le nom d'une table) et ensuite utiliser la propriété "ItemData" de ma liste pour passer sa valeur comme un argument à une autre fonction.

    J'ai lu dans ce forum sous le libelle "Impossible de sélectionner une valeur dans la liste déroulante" qu'il est possible d'avoir ce problème lorsqu'on est sur une zone de liste déroulante qui est liée à un champ d'une table. Apparemment, il faut créer un contrôle indépendant puis utiliser la commande "Docmd.FindRecord". Concrètement, je ne sais pas comment appliquer ce conseil... Quelqu'un pourrait-il m'aider?

    Merci!

    L'image associée à mon formulaire est en pièce jointe.

    Voici mon code:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub Form_Open(Cancel As Integer)
     
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim qdf As DAO.QueryDef
        Dim sSql As String
     
        'Défini la base de données cible
        Set db = DBEngine.OpenDatabase(Form_fSelectDB!tBrowse)
     
        ' Création de la requête
        sSql = "SELECT [Name] FROM msysobjects WHERE ([type] =1 and Flags = 0) or [type] = 6;"
     
        ' Ouverture du recordset cible
        Set rs = db.OpenRecordset(sSql, dbOpenForwardOnly, dbReadOnly)
     
        ' Création d'une vue temporaire (requête)
        Set qdf = CurrentDb().CreateQueryDef("tmpQuery", sSql)
        qdf.Close
        rs.Close
     
        ' Initialisation de la DropDownList
        Me!ddlTable.ColumnHeads = False
        Me!ddlTable.ColumnCount = 1
        Me!ddlTable.ColumnWidths = "4320;4320"
        Me!ddlTable.RowSourceType = "Table/Query"
        Me!ddlTable.RowSource = "tmpQuery"
     
    End Sub
    Images attachées Images attachées  

  2. #2
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    Bonjour,
    je me trompe peut-être mais il me semble que ce n'est pas faisable ton truc, à moins d'insérer la liste de tes tables dans une table locale et de faire pointer le contenu de ta liste sur ta table locale.

    Par ailleurs, si tu te sers ultérieurement de "db", il faudrait définir ta variable au niveau formulaire et pas seulement en local dans le Form_Open car une fois la proc finie, toutes les variables sont ré-initialisées et "db" fermée.

  3. #3
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Si ce n'est pas faisable, ça expliquerait le nombre de topic qui parlent de ça en ce moment, mais bon, j'espère que quelqu'un aura une solution
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  4. #4
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    ou alors, transformer le type de contenu de ta combo en liste de valeurs plutôt que table et construire cette liste soit en lisant les valeurs de [Name] une par une, soit en utilisant un tableau et rs.GetRows...

  5. #5
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Bonjour,

    J'opterai pour la proposition de MC2 concernant la liste de valeurs que tu pourrais créer à partir de ton Recordset

    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
    With rs
        Do While Not .EOF
            strListeTables= strListeTables& ";" & .Fields(0) & ";" & .Fields(1)
            .MoveNext
        Loop
    End With
     
    ' suppression de la virgule superflue en début de chaine
    strListeTables= Right(strListeTables, Len(strListeTables) - 1)
     
    ' Récupération des données à afficher
    with ddlTable
          .ColumnCount = 2
          .ColumnWidths = "4320;4320"
          .RowSourceType = "Value List"
          .RowSource = strListeTables
    End With
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  6. #6
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    détail, comme je suis fainéante : il est inutile de supprimer le ";"...

  7. #7
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Je sais, mais malheureusement, je suis un peu maniac
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup pour toutes vos réponses!

    Je viens tout juste de trouver mon problème... C'est disons très gênant, mais je ne partais pas d'un formulaire vierge et je n'avais pas porté attention à la propriété du formulaire "Modif autorisée". Je regardais simplement la propriété "Verrouillé" de ma liste...

    Merci encore!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/07/2014, 12h24
  2. Réponses: 2
    Dernier message: 09/02/2011, 14h39
  3. Sélectionner une valeur de la liste déroulante
    Par jacadi87 dans le forum Langage
    Réponses: 22
    Dernier message: 12/01/2010, 16h19
  4. Réponses: 5
    Dernier message: 17/10/2007, 18h17
  5. Réponses: 7
    Dernier message: 21/03/2007, 16h07

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