Partager via


Procédure pas à pas : liaison de données complexe dans un projet au niveau de l'application

Vous pouvez lier des données aux contrôles hôtes et Windows Forms dans les projets de niveau application.Cette procédure pas à pas montre comment ajouter des contrôles à une feuille de calcul Microsoft Office Excel et les lier aux données au moment de l'exécution.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau application pour Excel 2013 et Excel 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Cette procédure pas à pas décrit les tâches suivantes :

  • Ajout d'un contrôle ListObject à une feuille de calcul au moment de l'exécution.

  • Création d'un BindingSource qui connecte le contrôle à une instance d'un groupe de données.

[!REMARQUE]

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

-

Une édition de Visual Studio 2012 qui inclut les outils de développement Microsoft Office. Pour plus d'informations, consultez [Configuration d'un ordinateur pour développer des solutions Office](bb398242\(v=vs.110\).md).

Création d'un projet

La première étape consiste à créer un projet de complément Excel.

Pour créer un projet

  • Créez un projet de complément Excel avec le nom Remplir des documents à partir d'une base de données, en utilisant au choix Visual Basic ou C#.

    Pour plus d'informations, consultez Comment : créer des projets Office dans Visual Studio.

    Visual Studio ouvre le fichier ThisAddIn.vb ou ThisAddIn.cs et ajoute le projet Remplir des feuilles de calcul à partir d'un projet de base de données dans l'Explorateur de solutions.

Création d'une source de données

Utilisez la fenêtre Sources de données pour ajouter un groupe de données typé à votre projet.

Pour ajouter un groupe de données typé au projet

  1. Si la fenêtre Sources de données n'est pas visible, affichez- la par, dans la barre de menus, choisissant Afficher, Autres fenêtres, Sources de données.

  2. Choisissez Ajouter une nouvelle source de données pour démarrer Assistant Configuration de source de données.

  3. Cliquez sur Base de données, puis sur Suivant.

  4. Si vous disposez d'une connexion active à la base de données AdventureWorksLT, choisissez cette connexion, puis cliquez sur Suivant.

    Dans le cas contraire, cliquez sur Nouvelle connexion, puis utilisez la boîte de dialogue Ajouter une connexion pour créer la nouvelle connexion.Pour plus d'informations, consultez Comment : établir une connexion à des données d'une base de données.

  5. Sur la page Enregistrer la chaîne de connexion dans le fichier de configuration de l'application, cliquez sur Suivant.

  6. Sur la page Choisir vos objets de base de données, développez le nœud Tables, puis sélectionnez Address (SalesLT).

  7. Cliquez sur Terminer.

    Le fichier AdventureWorksLTDataSet.xsd est ajouté à l'Explorateur de solutions.Ce fichier définit les éléments suivants :

    • un groupe de données typé nommé AdventureWorksLTDataSet.Ce groupe de données représente le contenu de la table Address (SalesLT) dans la base de données AdventureWorksLT.

    • Un TableAdapter nommé AddressTableAdapter.Ce TableAdapter peut être utilisé pour lire et écrire des données dans AdventureWorksLTDataSet.Pour plus d'informations, consultez Vue d'ensemble de TableAdapter.

    Vous utiliserez ces deux objets plus loin dans cette procédure pas à pas.

Création et liaison de contrôles à des données

Pour cette procédure pas à pas, le contrôle ListObject affiche toutes les données dans la table que vous avez sélectionnée dès que l'utilisateur ouvre le classeur.L'objet de liste utilise un BindingSource pour connecter le contrôle à la base de données.

Pour plus d'informations sur la liaison des contrôles aux données, consultez Liaison de données aux contrôles dans les solutions Office.

Pour ajouter l'objet de liste, le groupe de données et l'adaptateur de table

  1. Dans la classe ThisAddIn, déclarez les contrôles suivants afin d'afficher la table Address du groupe de données AdventureWorksLTDataSet.

    Private addressListObject As Microsoft.Office.Tools.Excel.ListObject
    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private addressTableAdapter As AdventureWorksLTDataSetTableAdapters.AddressTableAdapter
    Private addressBindingSource As System.Windows.Forms.BindingSource
    
    private Microsoft.Office.Tools.Excel.ListObject addressListObject;
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.AddressTableAdapter addressTableAdapter;
    private System.Windows.Forms.BindingSource addressBindingSource;
    
  2. Dans la méthode ThisAddIn_Startup, ajoutez le code suivant afin d'initialiser le groupe de données et le remplir à l'aide des informations de la base de données AdventureWorksLTDataSet.

    Me.addressTableAdapter = New AdventureWorksLTDataSetTableAdapters.AddressTableAdapter()
    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.addressTableAdapter.Fill(Me.adventureWorksDataSet.Address)
    Me.addressBindingSource = New System.Windows.Forms.BindingSource()
    
    this.addressTableAdapter = new AdventureWorksLTDataSetTableAdapters.AddressTableAdapter();
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.addressTableAdapter.Fill(this.adventureWorksDataSet.Address);
    this.addressBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Ajoutez le code suivant à la méthode ThisAddIn_Startup.Cela génère un élément hôte qui étend la feuille de calcul.Pour plus d'informations, consultez Extension de documents Word et de classeurs Excel dans des compléments d'application au moment de l'exécution..

            Dim worksheet As Excel.Worksheet = DirectCast(Me.Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet)
    
            ' Create a workhseet host item.
            Dim extendedWorksheet As Worksheet = Globals.Factory.GetVstoObject(worksheet)
    
    
                Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1];
                // Create a workhseet host item.
                Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet);
    
    
    
  4. Créez une plage et ajoutez le contrôle ListObject.

    Dim cell As Excel.Range = extendedWorksheet.Range("$A$1:$G$5", System.Type.Missing)
    Me.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1")
    
    Excel.Range cell = extendedWorksheet.Range["$A$1:$G$5"];
    this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");
    
  5. Liez l'objet de liste à AdventureWorksLTDataSet l'aide de BindingSource.Passez les noms des colonnes que vous souhaitez lier à l'objet de liste.

    Me.addressBindingSource.DataSource = Me.adventureWorksDataSet.Address
    Me.addressListObject.AutoSetDataBoundColumnHeaders = True
    Me.addressListObject.SetDataBinding( _
        Me.addressBindingSource, "", "AddressID", "AddressLine1", _
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode")
    
    this.addressBindingSource.DataSource = this.adventureWorksDataSet.Address;
    this.addressListObject.AutoSetDataBoundColumnHeaders = true;
    this.addressListObject.SetDataBinding(
        this.addressBindingSource, "", "AddressID", "AddressLine1", 
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode");
    

Test du complément

Lorsque vous ouvrez Excel, le contrôle ListObject affiche les données de la table Address du groupe de données AdventureWorksLTDataSet.

Pour tester le complément

  • Appuyez sur F5.

    Un contrôle ListObject nommé addressListObject est créé dans la feuille de calcul.Parallèlement, un objet de groupe de données nommé adventureWorksLTDataSet et un BindingSource nommé addressBindingSource sont ajoutés au projet.ListObject est lié au BindingSource, qui est lui-même lié à l'objet de groupe de données.

Voir aussi

Tâches

Comment : remplir des feuilles de calcul avec des données provenant d'une base de données

Comment : remplir des documents avec les données d'une base de données

Comment : remplir des documents avec les données de services

Comment : remplir des documents avec les données d'objets

Comment : parcourir les enregistrements de base de données dans une feuille de calcul

Comment : mettre à jour une source de données avec les données d'un contrôle hôte

Procédure pas à pas : liaison de données simple dans un projet au niveau du document

Procédure pas à pas : liaison de données complexe dans un projet au niveau du document

Référence

Vue d'ensemble du composant BindingSource

Concepts

Vue d'ensemble de l'utilisation de fichiers de base de données locaux dans les solutions Office

Vue d'ensemble des sources de données

Liaison de contrôles Windows Forms à des données dans Visual Studio

Vue d'ensemble de l'utilisation de fichiers de base de données locaux dans les solutions Office

Connexion à des données dans des applications Windows Forms

Autres ressources

Données dans les solutions Office

Liaison de données aux contrôles dans les solutions Office