次の方法で共有


チュートリアル : ドキュメント レベルのプロジェクトでの複合データ バインディング

このチュートリアルでは、ドキュメント レベルのプロジェクトでの複合データ バインディングの基本事項について説明します。Microsoft Office Excel ワークシートの複数のセルを Northwind SQL Server データベースのフィールドにバインドできます。

対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

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

  • ブック プロジェクトにデータ ソースを追加します。

  • ワークシートにデータ バインド コントロールを追加します。

  • データの変更内容をデータベースに保存します。

[!メモ]

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

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

-

Microsoft Office Developer Tools が含まれているエディションの Visual Studio 2012。詳細については、「[Office ソリューションを開発できるようにコンピューターを構成する](bb398242\(v=vs.110\).md)」を参照してください。
  • Excel 2013 または Excel 2010。 

  • Northwind SQL Server サンプル データベースがインストールされたサーバーへのアクセス

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

新規プロジェクトの作成

最初に、Excel ブック プロジェクトを作成します。

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

  • My Complex Data Binding という名前の Excel ブック プロジェクトを作成します。ウィザードで、[新規ドキュメントの作成] をクリックします。

    詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。

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

データ ソースの作成

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

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

  1. [データ ソース] のウィンドウが表示されない場合は、これを、[ビュー][その他のウィンドウ] を選択する、メニュー バーの [データ ソース] 表示されます。

  2. [データ ソース構成ウィザード] を開始するには [新しいデータ ソースの追加] を選択します。

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

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

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

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

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

  8. [Employees] テーブルの横のチェック ボックスをオンにします。

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

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

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

ブックを開くと、ワークシートに Employees テーブルが表示されます。ユーザーは、データに変更を加え、ボタンをクリックして変更内容をデータベースに保存できます。

テーブルに対してワークシートを自動的にバインドするには、[データ ソース] ウィンドウからワークシートに ListObject コントロールを追加します。変更を保存するオプションをユーザーが選択できるようにするには、ツールボックスから Button コントロールを追加します。

リスト オブジェクトを追加するには

  1. [My Complex Data Binding.xlsx] ブックが Visual Studio のデザイナーで開いていると、表示 [Sheet1] ことを確認します。

  2. [データ ソース] ウィンドウを開き、[Employees] ノードを選択します。

  3. 表示されるドロップダウン矢印をクリックします。

  4. ドロップダウン リストで [ListObject] を選択します。

  5. Employees テーブルをセル A6 にドラッグします。

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

ボタンを追加するには

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

次の手順では、ワークシートを開くときにボタンにテキストを追加します。

コントロールの初期化

Startup イベント ハンドラーで、ボタンにテキストを追加します。

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

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

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

    Me.Button1.Text = "Save"
    
    this.button1.Text = "Save";
    
  3. C# の場合のみ、Click イベントのイベント ハンドラーを Sheet1_Startup メソッドに追加します。

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

ボタンの Click イベントを処理するコードを追加します。

データベースへの変更の保存

データに加えられた変更は、明示的にデータベースに保存されない限り、ローカル データセット内でのみ存在します。

データベースに変更を保存するには

  • button の Click イベントのイベント ハンドラーを追加し、次のコードを追加して、データセット内で行われたすべての変更をデータベースにコミットします。

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Button1.Click
    
        Try
            Me.EmployeesTableAdapter.Update(Me.NorthwindDataSet.Employees)
    
        Catch ex As System.Data.DataException
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    
    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            this.employeesTableAdapter.Update(this.northwindDataSet.Employees);
        }
        catch (System.Data.DataException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

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

ブックをテストして、データが期待どおりに表示され、リスト オブジェクト内のデータを操作できることを確認します。

データ バインディングをテストするには

  • F5 キーを押します。

    ブックを開いたときに、Employees テーブルのデータがリスト オブジェクトに設定されていることを確認します。

データを変更するには

  1. Davolio という名前が含まれているセル B7 をクリックします。

  2. 「Anderson」という名前を入力し、Enter キーを押します。

列ヘッダーを変更するには

  1. LastName という列ヘッダーを含むセルをクリックします。

  2. 「Last Name」(2 つの単語の間には空白を含む) を入力し、Enter キーを押します。

データを保存するには

  1. ワークシートの [<ファイル名> の保存] をクリックします。

  2. Excel を終了します。変更の保存を確認するメッセージに対して、[いいえ] をクリックします。

  3. F5 キーを押してプロジェクトを再び実行します。

    リスト オブジェクトには、Employees テーブルのデータが設定されます。

  4. セル B7 内の名前は Anderson であることに注意してください。これは、変更してデータベースに保存したデータです。列ヘッダーの LastName は、空白を含まない元の形式に戻っています。これは、列ヘッダーはデータベースにバインドされておらず、ワークシートへの変更を保存しなかったためです。

新規行を追加するには

  1. リスト オブジェクト内のセルを選択します。

    リストの下部に新規行が表示され、新規行の先頭のセルにはアスタリスク (*) が表示されます。

  2. 空の行に次の情報を追加します。

    EmployeeID

    LastName

    FirstName

    Title

    10

    Ito

    Shu

    Sales Manager

行を削除するには

  • ワークシートの左端にある番号 16 (行 16) をクリックして、[削除] をクリックします。

リスト内の行を並べ替えるには

  1. リスト内のセルを選択します。

    各列ヘッダーに矢印ボタンが表示されます。

  2. [Last Name] という列ヘッダーの矢印ボタンをクリックします。

  3. [昇順で並べ替え] をクリックします。

    姓のアルファベット順に行が並べ替えられます。

情報をフィルター処理するには

  1. リスト内のセルを選択します。

  2. [Title] という列ヘッダーの矢印ボタンをクリックします。

  3. [Sales Representative] をクリックします。

    [Title] 列が [Sales Representative] の行のみ表示されます。

  4. [Title] という列ヘッダーの矢印ボタンを再びクリックします。

  5. [(すべて)] をクリックします。

    フィルターが削除され、すべての行が表示されます。

次の手順

このチュートリアルでは、データベース内のテーブルをリスト オブジェクトにバインドする際の基本事項について説明します。次に行う作業は以下のとおりです。

参照

処理手順

チュートリアル : ドキュメント レベルのプロジェクトでの単純データ バインディング

その他の技術情報

Office ソリューションでのコントロールへのデータのバインド

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