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

VB.NET Discussion :

Combobox et access


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    commis de bureau
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : commis de bureau

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Points : 49
    Points
    49
    Par défaut Combobox et access
    Bonjour à tous j'ai un problème j'ai fouiller quelques forums ainsi que des tutoriel de youtube mais je pense pas avoir saisi comment faire.

    Dans ma form ( n’importe quel) j'ai un combox et elle doit chercher les élément d'un document acces. et les afficher dans ce combobox. Une colonne avec des noms de compagnie.

    pour l'instant je n'ai pas de code concret j'ai essayer celui la mais je pense que je suis dans le chamb mais je le laisse aucas
    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
    30
    31
     
     
    Imports System
     
    Imports System.Data
     
    Imports System.Data.OleDb
     
    Imports Microsoft.VisualBasic
    Public Class Form1
     
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
             "U:\test1.accdb")
     
            Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
            Mycommand.CommandText = "SELECT COMPAGNIE FROM T"
            MyConnexion.Open()
            Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
     
            Do While myReader.Read()
     
                ComboBox1.Items.Add(myReader.GetString(0))
     
            Loop
            myReader.Close()
     
            MyConnexion.Close()
        End Sub
    End Class
    Merci de l'aide!

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    J'ai compris ce que tu souhaites faire, mais pas ton problème.

    Ton code ne marche pas ? Il plante à une ligne ? Avec un message d'erreur ?
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  3. #3
    Membre du Club
    Homme Profil pro
    commis de bureau
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : commis de bureau

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Points : 49
    Points
    49
    Par défaut
    aucune ligne d'erreur quand le le démarre le programme je click sur combobox rien ne s'Affiche pourtant dans mon tableau access il ya des données. Je suis pret à recommencer du début mon code mais j 'ai besoin d'aide pour pouvoir le faire.

    encore merci du soutien!

  4. #4
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    N'ayant pas access et pas de prototype sous la main, je veux bien t'aider mais ce sera à l'aveugle.

    Dans un premier temps, on retirer ton code de Form1_load pour le mettre dans une fonction à part qui nous retournera un reader. (Ainsi si dans le futur tu souhaites remplir ta combo au click d'un bouton ou autre, tu n'auras plus qu'à récupérer les données que te renvois ta fonction)
    Egalement on va créer une procédure qui prendra en paramètre notre reader pour remplir la combobox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            remplirCombo(chargerBDD)
     
     
        End Sub
     
        Private Sub remplirCombo(dr As OleDbDataReader)
     
        End Sub
     
        Private Function chargerBDD() As OleDbDataReader
     
        End Function
    Dans ChargerBDD on va faire la connexion et récupérer les données, si j'ai bien lu ta base se situe à U:\test1.accdb et pour une base .accdb le provider à utiliser est Provider=Microsoft.ACE.OLEDB.12.0. Voir ConnectionString

    Donc on aura :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       Private function chargerBDD() As OleDbDataReader
     
     
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\test1.accdb;Persist Security Info=False;")
        End Function
    On va ouvrir notre connexion dans une structure USING ce qui fera qu'elle se fermera et libérera ses ressources une fois qu'on aura fini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Function chargerBDD() As OleDbDataReader
     
     
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\test1.accdb;Persist Security Info=False;")
     
            Using MyConnexion
                MyConnexion.Open()
     
            End Using
    Notre connexion est -en théorie- ouverte, donc maintenant on peut récupérer nos données avec une oleDbCommand

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Function chargerBDD() As OleDbDataReader
            Dim Mycommand As OleDbCommand
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\test1.accdb;Persist Security Info=False;")
     
            Using MyConnexion
                MyConnexion.Open()
     
                Mycommand = New OleDbCommand("SELECT COMPAGNIE FROM T", MyConnexion)
            End Using

    On va stocker ses données dans un DataReader et return ce DataReader, mais également on va entourer notre code avec Try Catch pour voir les erreurs s'il y en 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
        Private Function chargerBDD() As OleDbDataReader
            Dim Mycommand As OleDbCommand
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\test1.accdb;Persist Security Info=False;")
     
     
            Try
                Using MyConnexion
                    MyConnexion.Open()
     
                    Mycommand = New OleDbCommand("SELECT COMPAGNIE FROM T", MyConnexion)
     
                    Return Mycommand.ExecuteReader
                End Using
            Catch ex As Exception
                MsgBox(ex.ToString)
                Return Nothing
            End Try
    Donc on a notre fonction qui retourne un reader, maintenant on va exploiter ce reader pour remplir notre combobox dans la procédure remplirCombo(dr as oleDbDataReader)

    A l'identique on va réutiliser Using pour libérer le reader à la fin de son parcours, et remplir notre combobox durant le parcours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Private Sub remplirCombo(dr As OleDbDataReader)
     
            Using dr
                While dr.Read()
     
                    ComboBox1.Items.Add(dr("COMPAGNIE").ToString)
     
                End While
            End Using
        End Sub
    Ainsi on a au final :

    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
    30
    31
    32
    33
    34
    35
    36
    37
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     
            remplirCombo(chargerBDD)
     
     
        End Sub
     
        Private Sub remplirCombo(dr As OleDbDataReader)
     
            Using dr
                While dr.Read()
     
                    ComboBox1.Items.Add(dr("COMPAGNIE").ToString)
     
                End While
            End Using
        End Sub
     
        Private Function chargerBDD() As OleDbDataReader
            Dim Mycommand As OleDbCommand
            Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\test1.accdb;Persist Security Info=False;")
     
     
            Try
                Using MyConnexion
                    MyConnexion.Open()
     
                    Mycommand = New OleDbCommand("SELECT COMPAGNIE FROM T", MyConnexion)
     
                    Return Mycommand.ExecuteReader
                End Using
            Catch ex As Exception
                MsgBox(ex.ToString)
                Return Nothing
            End Try
     
        End Function

    Ce code n'est pas le plus optimisé au monde ni le plus propre, mais il est -en théorie encore car y'a toujours des soucis - fonctionnel.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ne pas mettre de code dans le form_load il avale les erreurs (ou alors mettre un try catch et regarder si ca rentre dans le catch) (bug de microsoft à priori)
    à la place du form_load il y a le sub new sinon


    sinon l'erreur doit etre que jet ne sais pas ouvrir les accdb (le reste du code me parrait bon) il faut alors passer par ace ole db comme provider
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre du Club
    Homme Profil pro
    commis de bureau
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : commis de bureau

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Points : 49
    Points
    49
    Par défaut
    Le semble parfait mais ca reste que quand je clique sur mon combo box il reste vide donc ca pourrait être les noms dans les requêtes qui serait faux. Et que je me serai trompé. Comment savoir ou dois je placé le nom de mes tables dans les requêtes?

    Merci de votre soutien c'est très apprécié!

  7. #7
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Quelle est la structure de la table T ?

    La requête SELECT COMPAGNIE FROM T signifie que tu récupères les enregistrements de la table T et que tu ne veux que la colonne 'COMPAGNIE', après il faudrait qu'on voit la structure de la table pour t'aider à faire ta requête SQL.

    Et tu peux aussi te documenter : http://sqlpro.developpez.com/cours/sqlaz/select/
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  8. #8
    Membre du Club
    Homme Profil pro
    commis de bureau
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : commis de bureau

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Points : 49
    Points
    49
    Par défaut
    merci pour tous je marque résolut maintenant je dois faire mon chemin et travailler ca. Il en faut que j'aille toute les réponses je marque résolut merci à tous!

  9. #9
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Bon courage, n'hésite pas à revenir si tu as des questions ou des difficultés.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/01/2014, 15h47
  2. ComboBox + SQL(Access) + DateTime
    Par byakuichi dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/08/2010, 12h42
  3. Charger ComboBox via Access ?
    Par Kenshin86 dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/03/2008, 19h11
  4. Existance Composant ComboBox en access
    Par franck SEFIC dans le forum Access
    Réponses: 6
    Dernier message: 18/07/2007, 21h26
  5. ComboBox à la Access
    Par hugo69 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/03/2007, 20h47

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