Gewusst wie: Aktualisieren einer Datenquelle mit Daten eines Hoststeuerelements

Aktualisiert: Juli 2008

Betrifft

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

Projekte auf Dokumentebene

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

Projekte auf Anwendungsebene

  • Excel 2007

  • Word 2007

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

Sie können ein Hoststeuerelement an eine Datenquelle binden und die Datenquelle mit den Änderungen aktualisieren, die an den Daten im Steuerelement vorgenommen werden.

Ab Visual Studio 2008 Service Pack 1 (SP1) können Sie Hoststeuerelemente in Projekten auf Anwendungsebene an Daten binden. Wenn SP1 nicht installiert ist, können Sie Hoststeuerelemente nur in Projekten auf Dokumentebene verwenden.

Dieser Prozess umfasst zwei Hauptschritte:

  1. Aktualisieren Sie die Datenquelle im Arbeitsspeicher mit den geänderten Daten im Steuerelement. In der Regel ist die Datenquelle im Arbeitsspeicher ein DataSet, eine DataTable oder ein anderes Datenobjekt.

  2. Aktualisieren Sie die Datenbank mit den geänderten Daten der Datenquelle im Arbeitsspeicher. Dies gilt nur, wenn die Datenquelle mit einer Back-End-Datenbank verbunden ist, beispielsweise einer SQL Server- oder Microsoft Office Access-Datenbank.

Weitere Informationen über Hoststeuerelemente und Datenbindung finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente und Binden von Daten an Steuerelemente.

Aktualisieren der Datenquelle im Arbeitsspeicher

Standardmäßig speichern Hoststeuerelemente, die eine einfache Datenbindung ermöglichen (z. B. Inhaltssteuerelemente in einem Word-Dokument oder NamedRange-Steuerelemente in einem Excel-Arbeitsblatt) keine Datenänderungen in der Datenquelle im Arbeitsspeicher. D. h., wenn ein Endbenutzer einen Wert in einem Hoststeuerelement ändert und anschließend von dem Steuerelement fort navigiert, wird der neue Wert im Steuerelement nicht automatisch in der Datenquelle gespeichert.

Um die Daten in die Datenquelle zu schreiben, können Sie Code erstellen, mit dem die Datenquelle als Reaktion auf ein bestimmtes Ereignis während der Laufzeit aktualisiert wird. Sie können das Steuerelement aber auch so konfigurieren, dass die Datenquelle automatisch aktualisiert wird, wenn sich der Wert im Steuerelement ändert.

ListObject-Änderungen an der Datenquelle im Arbeitsspeicher müssen nicht gespeichert werden. Wenn Sie ein ListObject-Steuerelement an Daten binden, speichert das ListObject-Steuerelement automatisch Änderungen an der Datenquelle im Arbeitsspeicher, ohne dass zusätzlicher Code benötigt wird.

So aktualisieren Sie die Datenquelle im Arbeitsspeicher zur Laufzeit

  • Rufen Sie die WriteValue-Methode des Binding-Objekts auf, welches das Steuerelement an die Datenquelle bindet.

    Im folgenden Beispiel werden Änderungen an einem NamedRange-Steuerelement in einem Excel-Arbeitsblatt in der Datenquelle gespeichert. In diesem Beispiel wird davon ausgegangen, dass Sie über ein NamedRange-Steuerelement mit dem Namen namedRange1 verfügen, dessen Value2-Eigenschaft an ein Feld in einer Datenquelle gebunden ist.

    Me.NamedRange1.DataBindings("Value2").WriteValue()
    
    this.namedRange1.DataBindings["Value2"].WriteValue();
    

Automatisches Aktualisieren der Datenquelle im Arbeitsspeicher

Sie können ein Steuerelement auch so konfigurieren, dass es die Datenquelle im Arbeitsspeicher automatisch aktualisiert. In einem Projekt auf Dokumentebene ist dies mithilfe von Code oder mit dem Designer möglich. In einem Projekt auf Anwendungsebene müssen Sie Code verwenden.

So legen Sie fest, dass ein Steuerelement die Datenquelle im Arbeitsspeicher automatisch mithilfe von Code aktualisiert

  • Verwenden Sie die DataSourceUpdateMode-Eigenschaft des Binding-Objekts, welches das Steuerelement an die Datenquelle bindet. Es gibt zwei Optionen zum Aktualisieren der Datenquelle:

    • Um die Datenquelle zu aktualisieren, wenn das Steuerelement validiert wird, legen Sie diese Eigenschaft auf OnValidation fest.

    • Um die Datenquelle zu aktualisieren, wenn sich der Wert der datengebundenen Eigenschaft des Steuerelements ändert, legen Sie diese Eigenschaft auf OnPropertyChanged fest.

      Hinweis:

      Die OnPropertyChanged-Option gilt nicht für Word-Hoststeuerelemente, da Word nicht über Benachrichtigungen bei Änderungen von Dokumenten oder Steuerelementen verfügt. Diese Option kann jedoch für Windows Forms-Steuerelemente in Word-Dokumenten verwendet werden.

    Im folgenden Beispiel wird ein NamedRange-Steuerelement so konfiguriert, dass die Datenquelle automatisch aktualisiert wird, wenn sich der Wert im Steuerelement ändert. In diesem Beispiel wird davon ausgegangen, dass Sie über ein NamedRange-Steuerelement mit dem Namen namedRange1 verfügen, dessen Value2-Eigenschaft an ein Feld in einer Datenquelle gebunden ist.

    Me.NamedRange1.DataBindings("Value2").DataSourceUpdateMode = _
        DataSourceUpdateMode.OnPropertyChanged
    
    this.namedRange1.DataBindings["Value2"].DataSourceUpdateMode = 
        DataSourceUpdateMode.OnPropertyChanged;
    

So legen Sie fest, dass ein Steuerelement die Datenquelle im Arbeitsspeicher automatisch mithilfe des Designers aktualisiert

  1. Öffnen Sie in Visual Studio das Word-Dokument oder die Excel-Arbeitsmappe im Designer.

  2. Klicken Sie auf das Steuerelement, von dem die Datenquelle automatisch aktualisiert werden soll.

  3. Erweitern Sie im Eigenschaftenfenster die Eigenschaft (DataBindings).

  4. Klicken Sie neben der (Advanced)-Eigenschaft auf die Schaltfläche mit den Auslassungszeichen ().

  5. Klicken Sie im Dialogfeld Formatierung und erweiterte Bindung auf die Dropdownliste Datenquellen-Aktualisierungsmodus, und wählen Sie einen der folgenden Werte aus:

    • Um die Datenquelle zu aktualisieren, wenn das Steuerelement überprüft wird, wählen Sie OnValidation aus.

    • Um die Datenquelle zu aktualisieren, wenn sich der Wert der datengebundenen Eigenschaft des Steuerelements ändert, wählen Sie OnPropertyChanged aus.

      Hinweis:

      Die OnPropertyChanged-Option gilt nicht für Word-Hoststeuerelemente, da Word nicht über Benachrichtigungen bei Änderungen von Dokumenten oder Steuerelementen verfügt. Diese Option kann jedoch für Windows Forms-Steuerelemente in Word-Dokumenten verwendet werden.

  6. Schließen Sie das Dialogfeld Formatierung und erweiterte Bindung.

Aktualisieren der Datenbank

Wenn die Datenquelle im Arbeitsspeicher mit einer Datenbank verknüpft ist, müssen Sie die Datenbank mit den Änderungen an der Datenquelle aktualisieren. Weitere Informationen zum Aktualisieren einer Datenbank finden Sie unter Übersicht über das Speichern von Daten und unter Gewusst wie: Aktualisieren von Daten mit einem TableAdapter.

So aktualisieren Sie die Datenbank

  1. Rufen Sie die EndEdit-Methode der BindingSource für das Steuerelement auf.

    Die BindingSource wird automatisch generiert, wenn Sie ein datengebundenes Steuerelement zur Entwurfszeit einem Dokument oder einer Arbeitsmappe hinzufügen. Die BindingSource verbindet das Steuerelement mit dem typisierten Dataset im Projekt. Weitere Informationen hierzu finden Sie unter Übersicht über die BindingSource-Komponente.

    Im folgenden Codebeispiel wird vorausgesetzt, dass das Projekt eine BindingSource mit dem Namen customersBindingSource enthält.

    Me.CustomersBindingSource.EndEdit()
    
    this.customersBindingSource.EndEdit();
    
  2. Rufen Sie im Projekt die Update-Methode des generierten TableAdapter auf.

    Der TableAdapter wird automatisch generiert, wenn Sie ein datengebundenes Steuerelement zur Entwurfszeit einem Dokument oder einer Arbeitsmappe hinzufügen. Der TableAdapter verbindet das typisierte Dataset im Projekt mit der Datenbank. Weitere Informationen hierzu finden Sie unter Übersicht über TableAdapters.

    Im folgenden Codebeispiel wird vorausgesetzt, dass eine Verbindung mit der Customers-Tabelle der Northwind-Datenbank besteht und dass das Projekt einen TableAdapter mit dem Namen customersTableAdapter sowie ein typisiertes Dataset mit dem Namen northwindDataSet enthält.

    Me.CustomersTableAdapter.Update(Me.NorthwindDataSet.Customers)
    
    this.customersTableAdapter.Update(this.northwindDataSet.Customers);
    

Siehe auch

Aufgaben

Gewusst wie: Aktualisieren von Daten mit einem TableAdapter

Gewusst wie: Ausführen eines Bildlaufs durch Datenbankdatensätze in einem Arbeitsblatt

Gewusst wie: Auffüllen von Arbeitsblättern mit Daten aus einer Datenbank

Gewusst wie: Auffüllen von Dokumenten mit Daten von Objekten

Gewusst wie: Auffüllen von Dokumenten mit Daten aus einer Datenbank

Gewusst wie: Auffüllen von Dokumente mit Daten aus Diensten

Konzepte

Binden von Daten an Steuerelemente

Übersicht über das Speichern von Daten

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Informationen über das Binden von Daten in Add-Ins auf Anwendungsebene hinzugefügt.

SP1-Featureänderung.