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 :

Connexion ADODB et remplissage de combobox


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut Connexion ADODB et remplissage de combobox


    Je me bats avec Access 2007 depuis ce matin pour essayer de remplir une liste déroulante avec les données contenues dans ma BD.
    Je fais donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    query = "SELECT DISTINCT Type_Station FROM Stations_Base"
    liste_inventaire.RowSource = query
    liste_inventaire.Requery
    mais le souci c'est que dans ma base je n'ai que des abréviations et je voudrais mettre dans la combo box les vrai noms des valeurs : par exemple dans ma base j'ai "H" mais dans la liste je veux faire apparaitre "Hydro".
    Le souci c'est que je ne trouve rien pour modifier la combo box (ça déjà ça me )

    Je me dis donc que je vais procéder différemment, je tente donc de remplir mes champs via une connexion ADODB.
    Le problème c'est que je veux une connexion sur la base courante donc je ne vois pas quoi mettre dans ce champ à la place du Data source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=.\Comptoir.mdb;"
    (je ne peux pas utiliser de connexion ADO car il faut coché une case dans outils -> référence et l'application est destinée à des gens n'ayant aucun niveau informatique donc il faut faire le plus simple possible).

    Dernier point(je ne suis jamais arrivé jusqu'à ce point mais tant qu'à faire je pose la question comme ça ça sera déjà fait), lorsque j'aurais enfin réussi à me connecter, c'est avec un recordSet que l'on récupère les valeurs ?

    Merci d'avance pour votre précieux aide.

    PS : c'est ma première demi-journée de Access de ma vie donc soyez indulgent

    PS : 2 au passage si quelqu'un connait un bon lien pour les classe VBA (style MSDN pour C#) je suis preneur

  2. #2
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bjr,

    Si j'ai bien compris :
    Pas besoin d'ADO à priori (au passage les références déclarées dans la Bd n'ont pas à être redéclarées par tous les utilisateurs, c'est sauvegardé dans le fichier)

    - Prévoir un champ description dans la table
    - Mettre la table en source de la liste (avec type de source : table/requête), ou alors une requête avec les deux champs clé + description, ex :select distinct Type_Station,Description_Station From Stations_Base
    - changer le paramètre "nombre de colonne" de la liste (1 colonne clé + 1 colonne description = 2 colonnes)
    - Mettre des tailles de colonne de manière à masquer la clé, par ex : 0cm;4cm
    - vérifier que le numéro de colonne liée est bien celui de la clé : 1 à priori

    Au mieux, faire ce paramétrage sur le champ clé dans la table, ainsi lors de l'ajout de ce champ dans un formulaire, la liste est automatiquement reprise.

  3. #3
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    merci pour ton aide Arkham46.
    Le problème c'est que je ne peux pas toucher la base, plusieurs personnes à travers le monde utilisent le même modèle de base (mais chacun on leur bases attention) donc si je modifie quelque chose chez moi, ça ne pourras pas fonctionner chez eux.
    Je dois simplement réaliser un module et un formulaire qu'il n'auront qu'à intégrer à leur base.

    Aucune des choses que je souhaite faire au-dessus est possible ?!?!

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    J'ai trouvé une manière de faire différente mais ça plante à l'éxecution et je n'arrive pas à comprendre comment résoudre le problème.
    je fais ça :
    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
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim query As String
        ' Ouverture de la base de données
        Set db = CurrentDb
        query = "SELECT DISTINCT Type_Station FROM Stations_Base"
        ' Ouverture du recordset
        Set rst = db.OpenRecordset(query, dbOpenForwardOnly, dbReadOnly)
     
        While Not rst.EOF
            Form_formulaire_export_hydraccess.liste_inventaire.AddItem rst.Fields(0).Value
            rst.MoveNext
        Wend
     
        ' Fermeture du Recordset
        rst.Close
    mais ceci me met une "erreur d'éxecution 6014 : Le propriété d'OrigineSource ..."
    Et si je fais ça
    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
    Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim query As String
        ' Ouverture de la base de données
        Set db = CurrentDb
        query = "SELECT DISTINCT Type_Station FROM Stations_Base"
        ' Ouverture du recordset
        Set rst = db.OpenRecordset(query, dbOpenForwardOnly, dbReadOnly)
     
        Form_formulaire_export_hydraccess.liste_inventaire.RowSource = Form_formulaire_export_hydraccess.liste_inventaire.RowSource & rst.Fields(0).Value
        rst.MoveNext
        While Not rst.EOF
            Form_formulaire_export_hydraccess.liste_inventaire.RowSource = Form_formulaire_export_hydraccess.liste_inventaire.RowSource & ";" & rst.Fields(0).Value
            rst.MoveNext
        Wend
     
        ' Fermeture du Recordset
        rst.Close
    ça compile tout nickel mais lorsque je clique sur le liste j'ai une erreur "La source d'enregistrement <hophophop> spécifié dans ce formulaire ou cet etat n'existe pas."
    Que faire ? Je comprends d'où vient la première erreur mais je ne sais pas la résoudre et je n'ai aucune idée de la seconde par contre

  5. #5
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    C'est bon j'ai enfin trouvé, il suffisait simplement de mettre l'attribut "Origine source" dans la fenêtre propriété à "Liste valeur".
    J'suis un

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

Discussions similaires

  1. erreur sur remplissage sr combobox
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2008, 20h55
  2. [Debutant] connection ADODB et remplissage de feuille
    Par in dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/07/2006, 16h41
  3. [VB6] Erreur sur Connexion Adodb
    Par jerzy59 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/05/2006, 10h44
  4. [VBA-E]Connexion ADODB a une base de données
    Par nemesys971 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/03/2006, 17h08

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