Partager via


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

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

  • Projets au niveau de l'application

Version de Microsoft Office

  • Word 2007

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 à un document Word Microsoft Office 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 ContentControl à un document au moment de l'exécution

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

  • Défilement des enregistrements et affichage dans le contrôle.

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.

  • Word 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 :

Création d'un projet

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

Pour créer un projet

  • Créez un projet Complément Word 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 documents à 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. Dans le menu Données, cliquez sur Ajouter une nouvelle source de données.

    L'Assistant Configuration de source de données s'ouvre.

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

  3. 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.

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

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

  6. 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 Customer (SalesLT) dans la base de données AdventureWorksLT.

    • Un TableAdapter nommé CustomerTableAdapter. 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

L'interface qui permet de consulter des enregistrements de base de données décrite dans cette procédure pas à pas est très rudimentaire ; elle est créée juste à l'intérieur du document. Un ContentControl affiche un enregistrement de base de données unique à la fois, et deux contrôles Button vous permettent de faire défiler les enregistrements. Le contrôle de contenu utilise un BindingSource pour se connecter à 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 créer l'interface dans le document

  1. Dans la classe ThisAddIn, déclarez les contrôles suivants pour afficher et faire défiler le contenu de la table Customer de la base de données AdventureWorksLTDataSet.

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. Dans la méthode ThisAddIn_Startup, ajoutez le code suivant pour initialiser le groupe de données et le remplir à l'aide des informations de la base de données AdventureWorksLTDataSet.

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = 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 le document. 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 currentDocument As Word.Document = Me.Application.ActiveDocument
    Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
    Word.Document currentDocument = this.Application.ActiveDocument;
    Document extendedDocument = currentDocument.GetVstoObject();
    
  4. Définissez plusieurs plages au début du document. Ces plages délimitent l'emplacement du texte et des contrôles.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Ajoutez les contrôles d'interface aux plages précédemment définies.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl( _
        range3, _
        "richTextContentControl1")
    
    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3,
        "richTextContentControl1");
    
  6. Liez le contrôle de contenu à AdventureWorksLTDataSet en utilisant BindingSource. Pour les développeurs C#, ajoutez deux gestionnaires d'événements pour les contrôles Button.

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add( _
        "Text", _
        Me.customerBindingSource, _
        "CompanyName", _
        True, _
        Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add(
        "Text", 
        this.customerBindingSource, 
        "CompanyName", 
        true,
        this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Ajoutez le code suivant afin de pouvoir naviguer à travers les enregistrements de base de données.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Test du complément

Lorsque vous ouvrez Word, le contrôle de contenu affiche des données du groupe de données AdventureWorksLTDataSet. Faites défiler les enregistrements de base de données en cliquant sur les boutons Suivant et Précédent.

Pour tester le complément

  1. Appuyez sur F5.

    Un contrôle de contenu nommé customerContentControl est créé et rempli avec les données. Parallèlement, un objet de groupe de données nommé adventureWorksLTDataSet et un BindingSource nommé customerBindingSource sont ajoutés au projet. ContentControl est lié au BindingSource, qui est lui-même lié à l'objet de groupe de données.

  2. Cliquez sur les boutons Suivant et Précédent pour faire défiler les enregistrements de base 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

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

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

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.