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 :

Afficher toutes les tables d'une DB dans ComboBox ! ! !


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Afficher toutes les tables d'une DB dans ComboBox ! ! !
    Bonjour à tous ! ! !

    Voila mon problème, je suis grand débutant, et je souhaiterais créer un petit logiciel qui permettrait d'accéder à une base de donnée ACCESS et de la modifier à ma guise ! ! !

    J'arrive déja à ouvrir une base de donnée, de récupérer son chemin, le nom, etc... et à m'y connecter, modifier des info et tout et tout

    Mais maintenant pour une meilleur ergonomie, j'aimerais pouvoir avoir dans un ComboBox, toutes les tables contenu dans cette base de donnée ! ! !

    Par exemple, j'ai une table PERSO.mdb et dedans j'ai 4 tables :
    - Membres
    - Commentaires
    - News
    - Livreor

    J'aimerais que ces 4 tables se trouvent dans le ComboBox et qu'aux moment ou je clique dans la ComboBox, je récupère le nom de la tables ! ! !

    j'ai dejà cherché sur Google, et quelqu'un proposait une solution avec la Microsoft DAO library

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Sub LISTE_TABLES(ByVal chemin As String)
    Dim bdd As DAO.Database
    Dim tbd As DAO.TableDef
    Set bdd = OpenDatabase(chemin)
    For Each tbd In bdd.TableDefs
    Debug.Print tbd.Name
    Next
    bdd.Close
    Set bdd = Nothing
    Set tbd = Nothing
    End Sub
    alors j'incorpore bien la Microsoft DAO library mais VB me dit que OpenDatabase n'est pas déclarée ! ! !

    je ne comprend pas et comme je vous l'ai dit, je suis grand debutant!!

    Je vous remercie d'avance pour vos futur réponses qui je l'èspère seront nombreuse ! !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,

    As tu vérifié que tu références (via un Import je suppose) la même version que celle fournie dans l'exemple ?

    Sinon, pour voire les méthodes proposées par cette référence, tu peux toujours la remettre dans le code et voir via l'autocomplétion les méthodes proposées.

  3. #3
    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
    il doit y avoir un getschema sur l'objet oledbconnection (donc pas besoin d'ajouter de référence)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour vos réponses mais comme je l'avais précisé, je suis un grand débutant en vb alors je ne comprend pas très bien ce que vous me dites ! ! !

    C'est quoi un GetSchéma ???

    Et si il y a un import, j'en avait pas mis, si vous savez c'est lequel, je suis prenneur ! ! !

  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
    tu tapes system.data.oledb.oledbconnection et tu fais F1 dessus
    tu verras la méthode getschema je pense qui doit etre expliquée aussi

    sinon y doit y avoir un chapitre sur les bases de données ici (voir meme tout lire peut etre utile ...)
    http://plasserre.developpez.com/cours/vb-net/

    et les imports sont facultatif
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    j'ai deja pas mal regarder le cours sur les bases de donnée et toute les autres choses mais je ne trouve rien sur comment lister le nom des tables dans un tableau ou dans une variables,

    et en plus je ne comprend pas du tout le code donnée par le site qui proposait la solution ! !!

    J'ai fait "Imports System.Data.OleDbConnection" mais il ne me le reconnait pas,
    VB me propose "Imports System.Data.OleDb.OleDbConnection"

    vous n'auriez pas un ptit bout de code sur la technique pour afficher le nom des tables d'une base access dans un ComboBox ??

  7. #7
    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
    Citation Envoyé par sperot51 Voir le message
    tu tapes system.data.oledb.oledbconnection et tu fais F1 dessus
    tu verras la méthode getschema je pense qui doit etre expliquée aussi

    sinon y doit y avoir un chapitre sur les bases de données ici (voir meme tout lire peut etre utile ...)
    http://plasserre.developpez.com/cours/vb-net/

    et les imports sont facultatif
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Voila ce que j'ai et il me dit que :
    "Une référence à un membre non partagée requiert une référence d'objet"
    Comprend pas tout, et après, comment l'insérer dans une 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
    15
    16
    17
    18
    19
     
    Private ObjetConnection As OleDbConnection '  Déclaration Objet Connexion
        Private ObjetCommand As OleDbCommand ' Déclaration Objet Commande
        Private ObjetDataAdapter As OleDbDataAdapter '  Déclaration Objet DataAdapter
        Private ObjetDataSet As New DataSet() ' Déclaration Objet DataSet et Attention au New
        Private strSql As String 'String contenant la 'Requête SQL'
        Private ObjetDataTable As DataTable ' Déclaration Objet DataTable
        Private ObjetDataRow As DataRow ' Déclaration Objet DataRow (ligne)
        Private RowNumber As Integer    ' Numéro de la ligne en cours et Numéro de l'enregistrement courant
        Private strConn As String 'Paramêtres de connexion à la DB
        Private ObjetCommandBuilder As OleDbCommandBuilder 'Pour recompiler les données modifiées avant de les remettre dans le DataAdapter
     
        Public Sub GetTableNameDB()
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= c:\PERSO.mdb;" 'Initialisation de la chaîne de paramètres pour la connexion
            ObjetConnection = New OleDbConnection() 'Instanciation d'un Objet Connexion
            ObjetConnection.ConnectionString = strConn 'Donner à la propriété ConnectionString les paramètres de connexion
            ObjetConnection.Open()
            GetSchema()
        End Sub

  9. #9
    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
    le getschema faut le faire sur l'objet connexion, et il faut récupérer le résultat de la fonction dans une variable


    ce forum ne sert pas à expliquer comment remplir un combobox (enfin à mon sens)
    pour ca il y a des cours et des tutos
    http://plasserre.developpez.com/cours/vb-net/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Je sais que ce n'est pas fait pour ça ! ! ! je vois a peu près comment faire pour insérer des donnée dans des ComboBox, avec le cours sa va être facile, mon problème sa va être pour récupérer le nom des tables dans des variables ! !

    Alors si j'ai bien tout compris, sa devrait donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public Sub GetTableNameDB()
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= c:\PERSO.mdb;" 'Initialisation de la chaîne de paramètres pour la connexion
            ObjetConnection = New OleDbConnection() 'Instanciation d'un Objet Connexion
            ObjetConnection.ConnectionString = strConn 'Donner à la propriété ConnectionString les paramètres de connexion
            ObjetConnection.Open()
            Dim tables As String = GetSchema(ObjetConnection)
    End Sub
    mais je vois pas comment sa peut marcher ! !désoler mais je suis un grnad débutant

  11. #11
    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
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim tables As String = GetSchema(ObjetConnection)

    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim tables As system.Data.datatable = ObjetConnection.GetSchema

    c'est expliqué dans l'aide de vb ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    alors j'ai essayer mais il me dit que tables ne peut pas être convertie en String,

    Comment l'afficher ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim tables As System.Data.DataTable = ObjetConnection.GetSchema
    ListBox1.Text = tables

  13. #13
    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
    sérieux tu veux pas lire un cours ???

    un datatable est un tableau de données avec des lignes et des colonnes, donc en effet c'est pas un string !

    et en général dans un ListBox1 on fait .items.add
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Julius...:
    - tables est de type System.Data.DataTable
    - ListBox1.Text, c'est du string

    Tu peux pas convertir un navet en une carotte...
    Si tu veux résoudre ton problème, faut vraiment que tu montes une (ou plutôt deux ou trois) marches dans la compréhension de VB.NET avec les tutos adaptés.

    Pense aussi à utiliser l'autocompletion et l'aide en ligne (MSDN) pour voir les méthodes, propriétés et evenements associés aux types que tu manipules.

    Après, si ça coince encore, on sera là pour t'aider.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    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
     
    Public Sub GetTableNameDB()
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= c:\PERSO.mdb;" 'Initialisation de la chaîne de paramètres pour la connexion
            ObjetConnection = New OleDbConnection() 'Instanciation d'un Objet Connexion
            ObjetConnection.ConnectionString = strConn 'Donner à la propriété ConnectionString les paramètres de connexion
     
            Dim Mycommand As OleDbCommand = ObjetConnection.CreateCommand()
            Dim tables As System.Data.DataTable = ObjetConnection.GetSchema
     
            ObjetConnection.Open()
     
            Dim myReader As OleDbDataReader = tables.ExecuteReader()
     
            Do While myReader.Read()
                ListBox1.Items.Add(myReader.GetString(0))
            Loop
     
     
            myReader.Close()
            ObjetConnection.Close()
     
    End Sub
    il me dit ExecuteReader n'est pas un membre de System.Data.DataTable

    j'ai cherché dans l'auto complétion de tables. mais je ne voit pas ce qui pourrait me permettre d'afficher le nom des tables

  16. #16
    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
    oui mais qu'est-ce que tu veux qu'on te dise de plus

    si tu veux développer des logiciels, il va falloir apprendre parce que t'écris des conneries et ca marche pas ... et on est pas là pour faire les choses à ta place
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/08/2011, 17h19
  2. Réponses: 8
    Dernier message: 07/06/2009, 20h31
  3. Réponses: 3
    Dernier message: 01/09/2008, 18h34
  4. [MySQL] Afficher toutes les données d'un champ dans une liste déroulante
    Par Touareg dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/03/2007, 12h42
  5. Réponses: 6
    Dernier message: 01/08/2006, 18h12

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