Beantwortet Comment afficher une table Access sous VS 2010

  • dimanche 12 février 2012 14:23
     
     

    Bonjour,

    Je rencontre un problème d'affichage d'une table dans VS 2010.

    Définition:

    J'ai un premier formulaire (Form1) qui m'affiche une liste de tables Access dans un DataGridView (DGW1).

    NB: Toutes les tables ont la même structure.

    J'ai un deuxième formulaire (Form2) qui affiche un DGW2 bati sur la structure d'une table contenue dans la liste du formulaire précédent.

    But:

    Sélectionner une table dans le Form1 et afficher son contenu dans Form2.

    Le paramètre passé entre les 2 formulaires est le nom de la table.

    Problème rencontré:

    Impossible de redéfinir les paramètres du DGW2 pour afficher n'importe quelle table.

    J'ai systématiquement un message d'erreur qui me dit que la table à afficher n'appartient pas au groupe qui a servi à définir la table.

    Je suis donc à la recherche d'une aide ou d'exemples qui me permettraient de solutionner mon problème.

    Dans l'attente de vous lire.


    • Modifié Géo dimanche 12 février 2012 14:26
    •  

Toutes les réponses

  • dimanche 12 février 2012 17:45
    Modérateur
     
     

    Bonjour,

    Pouvez-vous nous montrer le code qui exécute la requête pour afficher les données dans DGW2 ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • lundi 13 février 2012 21:17
     
     

    Bonjour,

    Excusez-moi, mais quand j'essaie de copier le presse-papier avec le code, j'obtiens un message d'erreur (Code 0) et je ne peux plus écrire dans la fenêtre. Je vais expliquer le système employé:

    Form1:

    Je récupère le nom de la table dans une variable objet

    Private Sub BT_EDITION_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_EDITION.Click
         Dim SNomFichier As String
         Dim OCell As Object
        'Récupération du nom de la table
         OCell = Me.DG_ENTRAINEMENT.SelectedCells
         SNomFichier = OCell.item(0).value
         Edition.Tag = SNomFichier
         Edition.Show()
    End Sub

    Code de chargement dans Form2

    Private Sub Edition_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: cette ligne de code charge les données dans la table 'Entrainement_beDataSet.Décontraction'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
        Me.EDITION_BS.DataMember = Me.Tag
        Me.EDITION_TA.Fill(Me.Entrainement_beDataSet.Puissance)
    EDITION_TA.ToString

    End Sub

    Le DGW2 est basé sur le modèle de la table Puissance. Chaque table est batie sur la même structure.

    Malheureusement je n'arrive pas à changer le modèle d'affichage. Je ne peux afficher que la table qui a servi de modèle à la construction du DGW2. Toute autre table affiche un écran vide.

    Merci de votre réponse.

  • mardi 14 février 2012 11:16
     
     Traitée

    Bonjour,

    Si je ne me trompe pas, votre DGW2 est basé sur le modèle de la Table Décontraction et le lien est fait pendant le design de Form2 ('TODO: cette ligne de code charge les données dans la table 'Entrainement_beDataSet.Décontraction'. Vous pouvez la déplacer ou la supprimer selon vos besoins.) et puis vous avez modifié le code pour la table Puissance. Le message d’erreur vient probablement du fait qu’Entrainement_beDataSet ne contient pas la table Puissance.

    Vu que la table affichée dans DGW2 dépende sur le choix fait dans Form1, il est préférable faire le lien entre votre DGW2 et la table à afficher par code et pas en mode design (voir cet exemple).

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

  • mercredi 15 février 2012 22:18
     
     

    Bonjour,

    Je pense avoir progressé sur les indications que vous m'avez fournies.

    Je vous en remercie.

    Il ne me reste qu'un obstacle: la chaîne de connexion du sqlAdapter.

    Je n'arrive pas à trouver la bonne syntaxe.

    Je dois me connecter sur une base de donnée Access 2003 située dans le répertoire F:\Vélo\Entrainement_be.mdb.

    Voici la chaîne que j'ai défini:

    "Dim

    connectionString As String = "Application Name=Microsoft.Jet.OLEDB.4.0;DataBase=F:\Vélo\Entrainement_be.mdb"Malheureusement, çà plante et j'obtiens un message d'erreur de connexion au serveur SQL.
  • jeudi 16 février 2012 10:02
     
     Traitée

    Bonjour,

    Je vous invite consulter cet articlepour voir comment créer le string de connexion pour une base de données Access. Puis, quand vous avez créé via le designer le modèle pour votre DGW2 vous avez eu l’option d’enregistrer la chaine de connexion dans le fichier de configuration de votre application (App.config). Vérifiez si vous avez cette information dans le fichier. Jái fait un petit test et j’ai obtenu :  

    “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=lien vers le fichier”

    Donc il faut utiliser Provider=Microsoft.Jet.OLEDB.4.0 a la place de Application Name=Microsoft.Jet.OLEDB.4.0.

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

  • jeudi 16 février 2012 21:15
     
     

    Bonjour,

    L'article permet effectivement de comprendre les connectionstring. Merci pour le lien.

    J'ai bien ajouté la référence System.configuration Version 4.0.0.0

    J'ai ajouté l'import System.Configuration.Provider.

    J'ai toujours une erreur lors de l'édition de la table. Le mot "Provider" n'est pas reconnu dans la connectionstring

    Bonne journée.

    Message d'erreur:

    System.ArgumentException: Mot clé non pris en charge : 'provider'.
       à System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey)
       à System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules)
       à System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
       à System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)
       à System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
       à System.Data.SqlClient.SqlConnection.ConnectionString_Set(String value)
       à System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)
       à System.Data.SqlClient.SqlConnection..ctor(String connectionString)
       à System.Data.SqlClient.SqlDataAdapter..ctor(String selectCommandText, String selectConnectionString)
       à Main.Form3.GetData(String selectCommand) dans f:\visual studio 2010\Projects\Entrainements\Entrainements\Form3.vb:ligne 33

  • vendredi 17 février 2012 08:56
     
     Traitée
  • vendredi 17 février 2012 20:55
     
     

    Bonjour,

    C'est gagné.

    Merci beaucoup pour le coup de main.

    A bientôt.