Exemplarische Vorgehensweise: Erstellen einer Master/Detail-Beziehung mithilfe eines zwischengespeicherten Datasets

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

Microsoft Office-Version

  • 2007 Microsoft Office System

  • Microsoft Office 2003

Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Diese exemplarische Vorgehensweise erläutert, wie Sie in einem Arbeitsblatt eine Master/Detail-Beziehung erstellen und die Daten für die Offlineverwendung zwischenspeichern.

In dieser exemplarischen Vorgehensweise wird Folgendes erläutert:

  • Hinzufügen von Steuerelementen zu einem Arbeitsblatt.

  • Einrichten eines Datasets, das in einem Arbeitsblatt zwischengespeichert werden soll.

  • Hinzufügen von Code, um Bildlauf durch die Datensätze zu ermöglichen.

  • Testen des Projekts.

Hinweis:

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio, die in den folgenden Anweisungen aufgeführt sind, angezeigt. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Um die exemplarische Vorgehensweise nachzuvollziehen, benötigen Sie:

  • Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).

  • Microsoft Office Excel 2003 oder Microsoft Office Excel 2007.

  • Zugriff auf die Northwind SQL Server-Beispieldatenbank. Die Datenbank kann sich auf dem Entwicklungscomputer oder einem Server befinden.

  • Lese- und Schreibberechtigungen für die SQL Server-Datenbank.

Erstellen eines neuen Projekts

In diesem Schritt wird ein Excel-Arbeitsmappenprojekt erstellt.

So erstellen Sie ein neues Projekt

Visual Studio öffnet die neue Excel-Arbeitsmappe im Designer und fügt dem Projektmappen-Explorer das My Master-Detail-Projekt hinzu.

Erstellen der Datenquelle

Verwenden Sie das Datenquellenfenster, um dem Projekt ein typisiertes Dataset hinzuzufügen.

So erstellen Sie die Datenquelle

  1. Wenn das Datenquellenfenster nicht sichtbar ist, klicken Sie im Menü Daten auf Datenquellen anzeigen.

  2. Klicken Sie auf Neue Datenquelle hinzufügen, um den Assistent zum Konfigurieren von Datenquellen zu starten.

  3. Wählen Sie Datenbank aus, und klicken Sie auf Weiter.

  4. Wählen Sie eine Datenverbindung zur Northwind SQL Server-Beispieldatenbank aus, oder fügen Sie mithilfe der Schaltfläche Neue Verbindung eine neue Verbindung hinzu.

  5. Klicken Sie nach dem Auswählen oder Erstellen einer Verbindung auf Weiter.

  6. Deaktivieren Sie ggf. die Option zum Speichern der Verbindung, und klicken Sie dann auf Weiter.

  7. Erweitern Sie im Fenster Datenbankobjekte den Knoten Tabellen.

  8. Wählen Sie die Tabelle Orders und die Tabelle Order Details aus.

  9. Klicken Sie auf Fertig stellen.

Der Assistent fügt die beiden Tabellen dem Datenquellenfenster hinzu. Dem Projekt wird außerdem ein typisiertes Dataset hinzugefügt, das im Projektmappen-Explorer sichtbar ist.

Hinzufügen von Steuerelementen zum Arbeitsblatt

In diesem Schritt fügen Sie dem ersten Arbeitsblatt einen benannten Bereich, ein Listenobjekt und zwei Schaltflächen hinzu. Fügen Sie zuerst den benannten Bereich und das Listenobjekt aus dem Datenquellenfenster hinzu, damit diese automatisch an die Datenquelle gebunden werden. Fügen Sie dann die Schaltflächen aus der Toolbox hinzu.

So fügen Sie einen benannten Bereich und ein Listenobjekt hinzu

  1. Stellen Sie sicher, dass die Arbeitsmappe My Master-Detail.xls in Visual Studio Designer geöffnet ist und Sheet1 angezeigt wird.

  2. Öffnen Sie das Datenquellenfenster, und erweitern Sie den Knoten Orders.

  3. Wählen Sie die Spalte OrderID, und klicken Sie anschließend auf den angezeigten Dropdownpfeil.

  4. Klicken Sie in der Dropdownliste auf NamedRange, und ziehen Sie die Spalte OrderID auf die Zelle A2.

    Ein NamedRange-Steuerelement mit Namen OrderIDNamedRange wird in der Zelle A2 erstellt. Gleichzeitig werden dem Projekt eine BindingSource mit Namen OrdersBindingSource, ein Tabellenadapter und eine DataSet-Instanz hinzugefügt. Das Steuerelement ist an die BindingSource gebunden, die wiederum an die DataSet-Instanz gebunden ist.

  5. Führen Sie einen Bildlauf nach unten durch, an den Spalten unterhalb der Tabelle Orders vorbei. Am unteren Rand der Liste befindet sich die Tabelle Order Details, die ihren Platz an dieser Stelle einnimmt, weil sie ein untergeordnetes Element der Tabelle Orders ist. Wählen Sie genau diese Order Details-Tabelle aus und nicht die Tabelle, die mit der Tabelle Orders auf einer Ebene liegt. Klicken Sie anschließend auf den angezeigten Dropdownpfeil.

  6. Klicken Sie in der Dropdownliste auf ListObject, und ziehen Sie die Tabelle Order Details auf die Zelle A6.

  7. Ein ListObject-Steuerelement mit dem Namen Order_DetailsListObject wird in der Zelle A6 erstellt und an BindingSource gebunden.

So fügen Sie zwei Schaltflächen hinzu

  1. Klicken Sie in der Toolbox auf die Registerkarte Allgemeine Steuerelemente, und fügen Sie von dort aus der Zelle A3 des Arbeitsblatts ein Button-Steuerelement hinzu.

    Diese Schaltfläche erhält den Namen Button1.

  2. Fügen Sie auch der Zelle B3 des Arbeitsblatts ein Button-Steuerelement hinzu.

    Diese Schaltfläche erhält den Namen Button2.

Markieren Sie anschließend das Dataset, das im Dokument zwischengespeichert werden soll.

Zwischenspeichern des Datasets

Markieren Sie das Dataset, das im Dokument zwischengespeichert werden soll, indem Sie das Dataset veröffentlichen und die CacheInDocument-Eigenschaft festlegen.

So wird das Dataset zwischengespeichert

  1. Wählen Sie im Komponentenfach NorthwindDataset aus.

  2. Ändern Sie im Eigenschaftenfenster die Modifiers-Eigenschaft in Public.

    Datasets müssen vor dem Zwischenspeichern veröffentlicht werden.

  3. Ändern Sie die CacheInDocument-Eigenschaft in True.

Der nächsten Schritt besteht darin, den Schaltflächen Text hinzuzufügen. In C# müssen Sie Code hinzufügen, um die Ereignishandler einzubinden.

Initialisieren der Steuerelemente

Legen Sie den Schaltflächentext fest, und fügen Sie Ereignishandler während des Startup-Ereignisses hinzu.

So initialisieren Sie die Daten und die Steuerelemente

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Sheet1.vb oder Sheet1.cs, und klicken Sie dann im Kontextmenü auf Code anzeigen.

  2. Fügen Sie der Sheet1_Startup-Methode den folgenden Code hinzu, um den Text für die Schaltflächen festzulegen.

    Me.Button1.Text = "<"
    Me.Button2.Text = ">"
    
    this.button1.Text = "<";
    this.button2.Text = ">";
    
  3. Fügen Sie in C# einen Ereignishandler für Klickereignisse der Schaltflächen in die Sheet1_Startup-Methode ein.

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

Hinzufügen von Code, um den Bildlauf durch die Datensätze zu ermöglichen

Fügen Sie dem Click-Ereignishandler der einzelnen Schaltflächen Code hinzu, um sich durch die Datensätze zu bewegen.

So führen Sie den Bildlauf durch die Datensätze aus

  1. Fügen Sie dem Click-Ereignis von Button1 einen Ereignishandler mit folgendem Code hinzu, um sich rückwärts durch die Datensätze zu bewegen:

    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. Fügen Sie dem Click-Ereignis von Button2 einen Ereignishandler mit folgendem Code hinzu, um sich vorwärts durch die Datensätze zu bewegen:

    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();
    }
    

Testen der Anwendung

Sie können die Arbeitsmappe jetzt testen, um zu überprüfen, ob die Daten wie erwartet angezeigt werden und Sie die Projektmappe offline verwenden können.

So testen Sie das Zwischenspeichern von Daten

  1. Drücken Sie F5.

  2. Stellen Sie sicher, dass der benannte Bereich und das Listenobjekt mit Daten aus der Datenquelle gefüllt werden.

  3. Führen Sie einen Bildlauf durch die Datensätze aus, indem Sie auf die Schaltflächen klicken.

  4. Speichern Sie die Arbeitsmappe, und schließen Sie anschließend die Arbeitsmappe und Visual Studio.

  5. Deaktivieren Sie die Datenbankverbindung. Ziehen Sie das Netzwerkkabel vom Computer ab, wenn sich die Datenbank auf einem Server befindet, oder beenden Sie den SQL Server-Dienst, wenn sich die Datenbank auf dem Entwicklungscomputer befindet.

  6. Öffnen Sie Excel und anschließend My Master-Detail.xls im Verzeichnis \bin (\My Master-Detail\bin in Visual Basic bzw. \My Master-Detail\bin\debug in C#).

  7. Führen Sie einen Bildlauf durch einige der Datensätze aus, um sicherzustellen, dass das Arbeitsblatt auch offline normal verwendet werden kann.

  8. Stellen Sie die Datenbankverbindung wieder her. Verbinden Sie den Computer wieder mit dem Netzwerk, wenn sich die Datenbank auf einem Server befindet, oder starten Sie den SQL Server-Dienst, wenn sich die Datenbank auf dem Entwicklungscomputer befindet.

Nächste Schritte

Diese exemplarische Vorgehensweise vermittelt die Grundlagen für das Erstellen einer Master/Detail-Beziehung in einem Arbeitsblatt und für das Zwischenspeichern eines Datasets. Die folgenden Aufgaben könnten sich daran anschließen:

Siehe auch

Konzepte

Binden von Daten an Steuerelemente

Zwischenspeichern von Daten

Übersicht über Hostelemente und Hoststeuerelemente

Weitere Ressourcen

Daten in Office-Lösungen