Share via


チュートリアル : キャッシュされたデータセットを使用したマスター/詳細関係の作成

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • 2007 Microsoft Office system

  • Microsoft Office 2003

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

このチュートリアルでは、ワークシート上でのマスター/詳細リレーションシップの作成、およびソリューションをオフラインで使用することを目的とするデータのキャッシュについて説明します。

このチュートリアルでは、次の作業を行う方法について説明します。

  • ワークシートにコントロールを追加する。

  • ワークシートにキャッシュするデータセットを設定する。

  • レコード間をスクロールするためのコードを追加する。

  • プロジェクトをテストする。

ms178809.alert_note(ja-jp,VS.90).gifメモ :

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピュータでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

前提条件

このチュートリアルを完了するための要件を次に示します。

  • Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)

  • Microsoft Office Excel 2003 または Microsoft Office Excel 2007

  • Northwind SQL Server サンプル データベースへのアクセス。このデータベースは開発用コンピュータまたはサーバーにあります。

  • SQL Server データベースの読み込み/書き込みアクセス許可

新規プロジェクトの作成

この手順では、Excel ブックのプロジェクトを作成します。

新しいプロジェクトを作成するには

新しい Excel ブックがデザイナで開き、My Master-Detail プロジェクトがソリューション エクスプローラに追加されます。

データ ソースの作成

[データ ソース] ウィンドウを使用して、型指定されたデータセットをプロジェクトに追加します。

データ ソースを作成するには

  1. [データ ソース] ウィンドウが表示されていない場合は、[データ] メニューの [データ ソースの表示] をクリックします。

  2. [新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。

  3. [データベース] をクリックし、[次へ] をクリックします。

  4. SQL Server Northwind サンプル データベースへのデータ接続を選択するか、または [新しい接続] をクリックして新しい接続を追加します。

  5. 接続を選択または作成したら、[次へ] をクリックします。

  6. 接続を保存するオプションがオンになっている場合はオフにし、[次へ] をクリックします。

  7. [データベース オブジェクト] ウィンドウの [テーブル] ノードを展開します。

  8. [Orders] テーブルと [Order Details] テーブルを選択します。

  9. [完了] をクリックします。

[データ ソース] ウィンドウに 2 つのテーブルが追加されます。さらに、ソリューション エクスプローラに表示されるプロジェクトに、型指定されたデータセットも追加されます。

ワークシートへのコントロールの追加

この手順では、1 番目のワークシートに、名前付き範囲、リスト オブジェクト、および 2 つのボタンを追加します。最初に、自動的にデータ ソースにバインドされるように、[データ ソース] ウィンドウから名前付き範囲とリスト オブジェクトを追加します。次に、ツールボックスからボタンを追加します。

名前付き範囲とリスト オブジェクトを追加するには

  1. Visual Studio デザイナで My Master-Detail.xls ブックが開いていて、Sheet1 が表示されていることを確認します。

  2. [データ ソース] ウィンドウを表示し、[Orders] ノードを展開します。

  3. [OrderID] 列を選択し、表示されるドロップダウン矢印をクリックします。

  4. ドロップダウン リストの [NamedRange] をクリックし、[OrderID] 列をセル A2 にドラッグします。

    OrderIDNamedRange という名前の NamedRange コントロールがセル A2 に作成されます。同時に、OrdersBindingSource という名前の BindingSource、テーブル アダプタ、および DataSet のインスタンスがプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。

  5. [Orders] テーブルの下にある列をスクロール ダウンします。リストの一番下には、Orders テーブルの子である Order Details テーブルがあります。Orders テーブルと同じレベルにあるテーブルではなく、この [Order Details] テーブルを選択し、表示されるドロップダウン矢印をクリックします。

  6. ドロップダウン リストの [ListObject] をクリックし、[Order Details] テーブルをセル A6 にドラッグします。

  7. Order_DetailsListObject という名前の ListObject コントロールがセル A6 に作成され、BindingSource にバインドされます。

2 つのボタンを追加するには

  1. ツールボックス[コモン コントロール] タブからワークシートのセル A3 へ、Button コントロールをドラッグします。

    このボタンの名前は Button1 です。

  2. 別の Button コントロールを、ワークシートのセル B3 に追加します。

    このボタンの名前は Button2 です。

次に、文書にキャッシュされるデータセットをマーキングします。

データセットのキャッシュ

データセットをパブリックにし、CacheInDocument プロパティを設定することによって、文書にキャッシュするデータセットをマーキングします。

データセットをキャッシュするには

  1. コンポーネント トレイの [NorthwindDataSet] を選択します。

  2. [プロパティ] ウィンドウで、Modifiers プロパティを Public に設定します。

    キャッシュを有効にする前に、データセットをパブリックにする必要があります。

  3. CacheInDocument プロパティを True に変更します。

次の手順では、ボタンにテキストを追加し、C# でイベント ハンドラをフックするコードを追加します。

コントロールの初期化

ボタンのテキストを設定し、Startup イベント時のイベント ハンドラを追加します。

データとコントロールを初期化するには

  1. ソリューション エクスプローラで、Sheet1.vb または Sheet1.cs を右クリックし、ショートカット メニューの [コードの表示] をクリックします。

  2. Sheet1_Startup メソッドに次のコードを追加して、ボタンのテキストを設定します。

    Me.Button1.Text = "<"
    Me.Button2.Text = ">"
    
    this.button1.Text = "<";
    this.button2.Text = ">";
    
  3. C# の場合のみ、ボタン クリック イベントのイベント ハンドラを Sheet1_Startup メソッドに追加します。

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

レコード間をスクロールするためのコードの追加

レコード間を移動するには、各ボタンの Click イベントにコードを追加します。

レコード間をスクロールするには

  1. Button1 の Click イベントのイベント ハンドラを追加し、レコード間を後方に移動できるように次のコードを追加します。

    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. Button2 の Click イベントのイベント ハンドラを追加し、レコード間を前方に移動できるように次のコードを追加します。

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

アプリケーションのテスト

ブックをテストして、データが期待どおりに表示され、ソリューションをオフラインで使用できることを確認します。

データ キャッシュをテストするには

  1. F5 キーを押します。

  2. 名前付き範囲とリスト オブジェクトに、データ ソースのデータが設定されていることを確認します。

  3. ボタンをクリックして、いくつかのレコードをスクロールします。

  4. ブックを保存し、ブックと Visual Studio を閉じます。

  5. データベースへの接続を無効にします。データベースがサーバー上にある場合はコンピュータからネットワーク ケーブルを外します。また、データベースが開発用コンピュータ上にある場合は SQL Server サービスを停止します。

  6. Excel を起動し、\bin ディレクトリ (Visual Basic の場合は \My Master-Detail\bin、または C# の場合は \My Master-Detail\bin\debug) から My Master-Detail.xls を開きます。

  7. いくつかのレコードをスクロールして、接続していない状態で、ワークシートが正常に動作することを確認します。

  8. データベースに再接続します。データベースがサーバー上にある場合はコンピュータをネットワークに再接続します。また、データベースが開発用コンピュータ上にある場合は SQL Server サービスを開始します。

次の手順

このチュートリアルでは、ワークシート上でのマスター/詳細リレーションシップの作成、およびデータセットのキャッシュの基本事項について説明します。次に行う作業は以下のとおりです。

参照

概念

コントロールへのデータのバインド

キャッシュされたデータ

ホスト項目とホスト コントロールの概要

その他の技術情報

Office ソリューションにおけるデータ