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

Macros et VBA Excel Discussion :

combobox et base de donnée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Par défaut combobox et base de donnée
    salut

    dans mon UserForm j'ai un combobox ses valeurs doit être les aleurs d'un champs d'une basse de données

    j'ai fais ce démarche :
    - sélectionnez la combobox1 vérifiez que la propriété ROWSOURCE est Vide.
    - double-cliquez sur le userform pour accèder au code
    - entrez le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize()
    ComboBox1.AddItem "New york"
    ComboBox1.AddItem "Paris"
    End Sub
    je doit remplacer " New york" et "Paris" par les valeurs du champs
    alors j'ai commencer par connecter à ma base et select from ma table le champs qui je besoin
    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
     
    Private Sub frmpanne_Initialize()
    Dim con As New ADODB.Connection
    Dim sql As String
    Dim base As String
    Dim ta As String
    base = Textbase.Text
     
     
     
    con.ConnectionString = "Dbq=C:\Documents and Settings\pika\Bureau\aplication_2011\" & base & ".accdb;" & "Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
     
    con.Open
    sql = " Select *from [Bureau_Poste]  ([Nom Bureau])  ; "
     
    'ComboBox1.RowSource = sql
    con.Close
    Set con = Nothing
    'MsgBox "OK", vbInformation
     
    End Sub
    la connexion c'est bien établir car j'ai utiliser la code de connexion dans une autre feuil et elle marche très bien

    j'ai fais de recherche sur le net , je doit faire ".clear" aussi

  2. #2
    Invité de passage
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2011
    Messages : 1
    Par défaut
    Salut,

    Tu oublies beaucoup d'éléments dans ton affichage.
    Effectivement tu as bien fait ta connexion à ta base de données, mais pour l'affichage, ce n'est pas aussi simple.

    J'espère, tout d'abord, que tu as bien importer les NameSpaces en haut de ta feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Imports System.Data
    Imports System.Data.OleDb
    Ensuite bien entendu, ta connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MyConnexion As OleDbConnection = New OleDbConnection("Dbq=C:\Documents and Settings\pika\Bureau\aplication_2011\" & base & ".accdb;" & "Driver={Microsoft Access Driver (*.mdb, *.accdb)}")
    Tu crées ensuite ton Objet commande a qui tu vas passer en paramètre ta requête SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
    Ta requete SQL doit être construit de telle sorte (l'étoile voulait dire "tous les champs") :
    SELECT [champs]
    FROM [TABLE]


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mycommand.CommandText = " Select * from Bureau_Poste"

    Et ce n'est que après que tu ouvre ta connexion
    On crée un objet DataReader:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
    On crée une boucle permettant de lire les enregistrements les uns après les autres, on récupère le champ (compteur) qui est un Integer.
    On met ensuite l'enregistrement à l'index (compteur) dans la comboBox
    La boucle est lu tant qu'il y a des enregistrements.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim compteur as Integer
    compteur = 0
    Do While myReader.Read()
    Combobox.Items.Add(myReader.GetString(compteur))
    Loop
    Et bien entendu, refaire la connexion et ton Reader.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myReader.Close()
    MyConnexion.Close()

    N'oublie pas non plus de mettre en place la gestion des Exceptions avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Try
     
    Catch ex As Exception
         MsgBox(ex.Message)
    End Try
    Si tu as encore des problèmes, je te conseils de chercher sur ce tuto : http://plasserre.developpez.com/cour...bases-donnees2
    Il est très utile.

    J'espère t'avoir apporté l'aide dont tu avais besoin.
    Bonne continuation.

    "Je viens de me rendre compte que tu voulais une explication en VBA et non en VB.NET.. Je pense que la syntaxe est similaire.. ^^"

    --
    AlexandreSerre
    www.twitter.com/AlexandreSerre

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    @ AlexandreSerre

    Ce que tu as mit est hors sujet, tu as mis du code Vb.net, on est dans un forum VBA Excel.

    Philippe

Discussions similaires

  1. combobox et Base de donnée
    Par chlours dans le forum C++
    Réponses: 2
    Dernier message: 10/03/2008, 10h12
  2. Probleme de Code pour combobox et base de donnée
    Par freko dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/11/2007, 14h37
  3. Problème combobox et base de données
    Par dubidon dans le forum VB.NET
    Réponses: 17
    Dernier message: 12/05/2007, 09h02
  4. ComboBox éditable <-> Base de données
    Par jacklafrip dans le forum MFC
    Réponses: 5
    Dernier message: 26/09/2006, 10h33
  5. [VBA-E]COMBOBOX, et base de données
    Par legend dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/02/2006, 13h22

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