Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : Juillet 2008
S'applique à |
|---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
À compter de Visual Studio 2008 Service Pack 1 (SP1), vous pouvez lier des données aux contrôles hôtes et aux contrôles Windows Forms dans les projets au niveau de l'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.
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 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 avez besoin des éléments suivants :
Visual Studio Tools pour Office (composant facultatif de Visual Studio 2008 Professional et Visual Studio Team System).
Visual Studio Tools pour Office est installé par défaut avec les versions répertoriées de Visual Studio. Pour vérifier s'il est installé, consultez Installation de Visual Studio Tools pour Office.
Excel 2007
Accès à une instance en cours d'exécution de SQL Server 2005 ou SQL Server 2005 Express à laquelle l'exemple de base de données AdventureWorksLT est attaché. Vous pouvez télécharger la base de données AdventureWorksLT à partir du site Web CodePlex (en anglais). Pour plus d'informations sur la façon d'attacher une base de données, consultez les rubriques suivantes :
Pour attacher une base de données en utilisant SQL Server Management Studio ou SQL Server Management Studio Express, consultez Procédure : attacher une base de données (SQL Server Management Studio).
Pour attacher une base de données en utilisant la ligne de commande, consultez Procédure : attacher un fichier de base de données à SQL Server Express.
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 Complément Excel 2007 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 Visual Studio Tools pour Office.
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
Dans le menu Données, cliquez sur Ajouter une nouvelle source de données.
L'Assistant Configuration de source de données s'ouvre.
Cliquez sur Base de données, puis sur Suivant.
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 : créer des connexions à des bases de données SQL Server.
Sur la page Enregistrer la chaîne de connexion dans le fichier de configuration de l'application, cliquez sur Suivant.
Sur la page Choisir vos objets de base de données, développez le nœud Tables, puis sélectionnez Address (SalesLT).
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.
Pour ajouter l'objet de liste, le groupe de données et l'adaptateur de table
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.BindingSourceprivate Microsoft.Office.Tools.Excel.ListObject addressListObject; private AdventureWorksLTDataSet adventureWorksDataSet; private AdventureWorksLTDataSetTableAdapters.AddressTableAdapter addressTableAdapter; private System.Windows.Forms.BindingSource addressBindingSource;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();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) Dim extendedWorksheet As Worksheet = worksheet.GetVstoObject()Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1]; Worksheet extendedWorksheet = worksheet.GetVstoObject();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", System.Type.Missing]; this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");Liez le contrôle de contenu à AdventureWorksLTDataSet en utilisant 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
Concepts
Liaison de données aux contrôles
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
Vue d'ensemble de l'affichage des données
Vue d'ensemble de l'utilisation de fichiers de base de données locaux dans les solutions Office
Vue d'ensemble de la connexion aux données dans Visual Studio
Référence
Vue d'ensemble du composant BindingSource
Autres ressources
Données dans les solutions Office
Historique des modifications
Date |
Historique |
Raison |
|---|---|---|
|
Juillet 2008 |
Ajout d'une rubrique. |
Modifications de fonctionnalités dans le SP1. |
Remarque :