Partager via


Procédure pas à pas : création d'une relation maître/détail à l'aide d'un groupe de données mis en cache

Cette procédure pas à pas montre la création d'une relation maître/détail dans une feuille de calcul et la mise en cache des données afin que la solution puisse être utilisée hors connexion.

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

Au cours de cette procédure pas à pas, vous apprendrez à :

  • ajouter des contrôles à une feuille de calcul ;

  • configurer un groupe de données à mettre en cache dans une feuille de calcul ;

  • ajouter du code pour activer le défilement des enregistrements ;

  • tester votre projet.

Notes

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

Composants requis

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

-

Une édition de Visual Studio 2010 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.100\).md).
  • Microsoft Office Excel 2007 ou Excel 2010.

  • Accédez à l'exemple de base de données Northwind dans SQL Server. La base de données peut se trouver sur votre ordinateur de développement ou sur un serveur.

  • Autorisations d'accès en lecture et écriture à la base de données SQL Server.

Création d'un projet

Dans cette étape, vous allez créer un projet de classeur Excel.

Pour créer un projet

Visual Studio ouvre le nouveau classeur Excel dans le concepteur et ajoute le projet My Master-Detail à l'Explorateur de solutions.

Création de la source de données

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

Pour créer la source de données

  1. Si la fenêtre Sources de données n'est pas visible, cliquez sur Afficher les sources de données dans le menu Données.

  2. Cliquez sur Ajouter une nouvelle source de données pour démarrer l'Assistant Configuration de source de données.

  3. Sélectionnez Base de données, puis cliquez sur Suivant.

  4. Sélectionnez une connexion de données pour l'exemple de base de données Northwind dans SQL Server ou ajoutez une nouvelle connexion à l'aide du bouton Nouvelle connexion.

  5. Après avoir sélectionné ou créé une connexion, cliquez sur Suivant.

  6. Désélectionnez l'option pour enregistrer la connexion si elle est sélectionnée, puis cliquez sur Suivant.

  7. Développez le nœud Tables dans la fenêtre Objets de base de données.

  8. Sélectionnez les tables Orders et Order Details.

  9. Cliquez sur Terminer.

L'Assistant ajoute les deux tables à la fenêtre Sources de données. Un groupe de données typé est également ajouté à votre projet, visible dans l'Explorateur de solutions.

Ajout de contrôles à la feuille de calcul

Dans cette étape, vous ajouterez une plage nommée, un objet de liste et deux boutons à la première feuille de calcul. Commencez par ajouter la plage nommée et l'objet de liste à partir de la fenêtre Sources de données afin qu'ils soient automatiquement liés à la source de données. Ensuite, ajoutez les boutons de la boîte à outils.

Pour ajouter une plage nommée et un objet de liste

  1. Vérifiez que le classeur My Master-Detail.xls est ouvert dans le concepteur Visual Studio et que Sheet1 est affiché.

  2. Ouvrez la fenêtre Sources de données et développez le nœud Orders.

  3. Sélectionnez la colonne OrderID, puis cliquez sur la flèche de déroulement qui apparaît.

  4. Cliquez sur NamedRange dans la liste déroulante, puis faites glisser la colonne OrderID jusqu'à la cellule A2.

    Un contrôle NamedRange nommé OrderIDNamedRange est créé dans la cellule A2. En même temps, un BindingSource nommé OrdersBindingSource, un adaptateur de table et une instance de DataSet sont ajoutés au projet. Le contrôle est lié à BindingSource, qui est lié à son tour à l'instance de DataSet.

  5. Faites défiler vers le bas les colonnes qui sont sous la table Orders. À la fin de la liste se trouve la table Order Details ; elle est située à cet endroit, car il s'agit d'un enfant de la table Orders. Sélectionnez cette table Order Details, et non celle située au même niveau que la table Orders, puis cliquez sur la flèche de déroulement qui apparaît.

  6. Cliquez sur ListObject dans la liste déroulante, puis faites glisser la table Order Details vers la cellule A6.

  7. Un contrôle ListObject nommé Order_DetailsListObject est créé dans la cellule A6 et lié à BindingSource.

Pour ajouter deux boutons

  1. À partir de l'onglet Contrôles communs de la Boîte à outils, ajoutez un contrôle Button à la cellule A3 de la feuille de calcul.

    Ce bouton est nommé Button1.

  2. Ajoutez un autre contrôle Button à la cellule B3 de la feuille de calcul.

    Ce bouton est nommé Button2.

Ensuite, marquez le groupe de données à mettre en cache dans le document.

Mise en cache du groupe de données

Marquez le groupe de données à mettre en cache dans le document en rendant public le groupe de données et en définissant la propriété CacheInDocument.

Pour mettre en cache le groupe de données

  1. Sélectionnez NorthwindDataSet dans la barre d'état des composants.

  2. Dans la fenêtre Propriétés, remplacez la valeur de la propriété Modifiers par Public.

    Les groupes de données doivent être publics pour que la mise en cache soit activée.

  3. Remplacez la valeur de la propriété CacheInDocument par True.

L'étape suivante consiste à ajouter du texte aux boutons, et en C#, à ajouter du code pour raccorder les gestionnaires d'événements.

Initialisation des contrôles

Définissez le texte du bouton et ajoutez des gestionnaires d'événements pendant l'événement Startup.

Pour initialiser les données et les contrôles

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Sheet1.vb ou Sheet1.cs, puis cliquez sur Afficher le code dans le menu contextuel.

  2. Ajoutez le code suivant à la méthode Sheet1_Startup afin de définir le texte des boutons.

    Me.Button1.Text = "<"
    Me.Button2.Text = ">"
    
    this.button1.Text = "<";
    this.button2.Text = ">";
    
  3. Pour C# uniquement, ajoutez des gestionnaires d'événements pour les événements Click de bouton à la méthode Sheet1_Startup.

    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    

Ajout de code pour pouvoir faire défiler les enregistrements

Ajoutez du code au gestionnaire d'événements Click de chaque bouton pour parcourir les enregistrements.

Pour faire défiler les enregistrements

  1. Ajoutez un gestionnaire d'événements pour l'événement Click de Button1 et ajoutez le code suivant afin de faire défiler les enregistrements vers l'arrière :

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button1.Click
    
        Me.OrdersBindingSource.MovePrevious()
    End Sub
    
    private void button1_Click(object sender, EventArgs e)
    {
        this.ordersBindingSource.MovePrevious();
    }
    
  2. Ajoutez un gestionnaire d'événements pour l'événement Click de Button2 et ajoutez le code suivant afin de faire défiler les enregistrements vers l'avant :

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button2.Click
    
        Me.OrdersBindingSource.MoveNext()
    End Sub
    
    private void button2_Click(object sender, EventArgs e)
    {
        this.ordersBindingSource.MoveNext();
    }
    

Test de l'application

Maintenant, vous pouvez tester votre classeur afin de vérifier que les données apparaissent correctement et que vous pouvez utiliser la solution hors connexion.

Pour tester la mise en cache des données

  1. Appuyez sur F5.

  2. Vérifiez que la plage nommée et l'objet de liste contiennent des données de la source de données.

  3. Faites défiler quelques-uns des enregistrements en cliquant sur les boutons.

  4. Enregistrez le classeur, puis fermez le classeur et Visual Studio.

  5. Désactivez la connexion à la base de données. Débranchez le câble réseau de votre ordinateur si la base de données est située sur un serveur ou arrêtez le service SQL Server si la base de données se trouve sur votre ordinateur de développement.

  6. Ouvrez Excel, puis ouvrez My Master-Detail.xls dans le répertoire (\My Master-Detail\bin en Visual Basic ou \My Master-Detail\bin\debug en C#).

  7. Faites défiler quelques-uns des enregistrements pour vérifier que, hors connexion, la feuille de calcul fonctionne normalement.

  8. Reconnectez-vous à la base de données. Connectez de nouveau votre ordinateur au réseau si la base de données est située sur un serveur ou démarrez le service SQL Server si la base de données se trouve sur votre ordinateur de développement.

Étapes suivantes

Cette procédure pas à pas présente les notions de base de la création d'une relation de données maître/détail dans une feuille de calcul et de la mise en cache d'un groupe de données. Vous devrez peut-être ensuite exécuter les opérations suivantes :

Voir aussi

Concepts

Mise en cache des données

Vue d'ensemble des éléments hôtes et des contrôles hôtes

Autres ressources

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

Données dans les solutions Office