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

Windows Forms Discussion :

Remplir DataGridViews/Comboboxs avec une BDD Excel (et vice-versa)


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 140
    Points : 37
    Points
    37
    Par défaut Remplir DataGridViews/Comboboxs avec une BDD Excel (et vice-versa)
    Bonjour

    Je débute en VB.net, mais j'ai réussi jusqu'à présent à construire une interface graphique contenant les principaux contrôles dont j'ai besoin.

    Mon interface se compose de 2 "couches" (apparaissant/se cachant selon valeur d'un bouton toolstrip), lesquelles contiennent:
    - une 40aine de comboboxs sur la 1ère;
    - une 20aine d'onglets (façon Excel) sur la 2nde.

    Pour l'instant je m'interesse surtout aux DataGridViews se trouvant sur chaque onglet de la 2nd couche.

    A la base, j'ai donc une interface graphique présentée ci-dessus, et une Base de données faite sous Excel2003 (pour des raisons de compatibilité très grand public).

    J'ai donc inséré un DataGridView (avec le Concepteur de VB2008 free edition) dans un des onglets, puis essayer de me connecter aux tableaux de mon fichier Excel... et là je m'aperçois ke VB ne me propose ke 3 fournisseurs de connection: 2 pour SQL/Oracle et 1 pour Access...

    ... J'ai donc "importé" mes tables de mon fichier Excel vers un fichier Access vide... puis retenter la connection avec le fournisseur Access de VB2008. Cela m'a produit un DataSet contenant toutes mes tables. Pas de problème jusque là...

    Je reviens now a mon DataGridView et je fais "Selectionner une source de données". Dans l'explorateur de données, je choisis donc le DataSet ... je la voit donc apparaitre dans la case propiétés DataSource du DataGridView. Très bien.... puis juste au dessus de cette proprèté se trouve "DataMember" -> là je lui ai assigné la bonne table du DataSet que je veux afficher...
    Cela me fait apparaitre les en-têtes de colonnes de la table, exactement les mêmes que dans mon fichier Access...bien jusque là....

    Puis je clique le bouton démarrer le deboguage pour voir ce que ca donne :
    L'interface ne m'affiche que les en-têtes de colonnes, mais pas les données...

    Donc les questions que je me pose (et souhaite de l'aide) sont :

    1. Au niveau conceptuel, ai-je pris la bonne décision de convertir mon fichier Excel en BDD Access ? Sachant que l'application s'adresse à des gens qui ont pour la plupart "juste" Excel 2003 et le framework de base de Vista/XP, pourront-ils toujours Delete/Modify/Update/Insert la BDD Access via mon interface VB, même s'ils n'ont pas access ? ou aurais-je dû chercher un fournisseur de connection pour Excel à rajouter dans mes références ?
    Au final je souhaite juste l'executable (mon interface) et le fichier BDD, l'utilisateur n'aura qu'à utiliser le .exe c'est tout (pas d'installation superflue etc...)

    2. Au niveau de mon DataGridView, que dois-je vérifier pour que les données de ma table s'affichent ? Je vois dans VB2008 1 DataTable + 1 DataAdapter pour chaque table de mon DataSet (dans Dataset.xsd).
    Je vois aussi que lorsque j'ai assigné les propiétés DataSource et DataMember de mon DataGridView, cela m'a produit dans "Structure du document" un DataSet BindingSource et un TableAdapter (encore...).
    Au niveau code (Form1.vb), je n'ai que Public Class MainWindow gérant le comportement des 2 couches, c'est tout...

    N'hésitez pas à me demander d'autres précisions si les infos ci-dessus ne sont pas claires.

    EDIT: j'ai lu le pdf de PLasserre... mais rien trouvé répondant à mes 2 questions ci-dessus.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 140
    Points : 37
    Points
    37
    Par défaut
    J'ai résolu ma 2ème question en refaisant toute ma chaine de connexion, mais je ne sait pas pourquoi ca a fonctionné cette fois lol...

    La seule chose différente que j'ai fait c'est que j'ai supprimé mes datagridviews (qui étaient déjà en place avant la connexion), puis après la connexion, j'ai glissé-déposé la table souhaitée de la fenêtre Sources de données vers le Form où je veux que le tableau apparaisse...
    Resultat: non seulement cette manip m'a créé un Datagridview automatiquement, mais aussi ajouté une barre d'outils BindIngNavigator bien pratique



    En revanche, ma 1ère question tiens toujours...

    Je n'ai pas encore testé si modifier mes données via mon interface "update" aussi mon fichier Access à la fermeture de l'interface.

  3. #3
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Tu peux te connecter à des fichiers excel via le provider OleDB (Qui est aussi le provider pour Access je crois). Il faut juste que le fichier Excel soit formatté d'une certaine facon (Avec des header pour les colonnes par exemple).
    Sinon avec Access, ça devrait marcher comme tu veux.Le provider OleDB est installé avec le framework donc il suffit donc de ton exe et le fichier DB. Perso je pense que c'est mieux qu'un fichier Excel, si c'est pour un role BD. Peut-etre que SQL Compact serait encore mieux, mais c'est chipoter
    Microsoft MVP : Windows Platform

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

Discussions similaires

  1. Remplir un combobox avec une table SAS
    Par Solyena dans le forum C#
    Réponses: 1
    Dernier message: 21/04/2011, 15h30
  2. Remplir un combobox avec une collection Dictionnary
    Par kodo dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 19/06/2010, 19h21
  3. Réponses: 1
    Dernier message: 13/05/2010, 12h02
  4. Remplir un combobox avec des données excel
    Par jeremy_d dans le forum Windows Forms
    Réponses: 18
    Dernier message: 13/05/2008, 11h01
  5. Remplir un combobox avec une base de donnée
    Par tomenbois dans le forum C#
    Réponses: 12
    Dernier message: 12/12/2007, 20h37

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