チュートリアル : ドキュメント レベルのプロジェクトでの複合データ バインディング
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、ドキュメント レベルのプロジェクトでの複合データ バインディングの基本事項について説明します。Microsoft Office Excel ワークシートの複数のセルを Northwind SQL Server データベースのフィールドにバインドできます。
このチュートリアルでは、次のタスクについて説明します。
ブック プロジェクトにデータ ソースを追加します。
ワークシートにデータ バインド コントロールを追加します。
データの変更内容をデータベースに保存します。
メモ : |
---|
お使いのマシンで、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 ワークブック プロジェクトを作成します。
新しいプロジェクトを作成するには
My Complex Data Binding という名前の Excel ブック プロジェクトを作成します。ウィザードで、[新規ドキュメントの作成] をクリックします。
詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
新しい Excel ブックがデザイナで開き、My Complex Data Binding プロジェクトがソリューション エクスプローラに追加されます。
データ ソースの作成
[データ ソース] ウィンドウを使用して、型指定されたデータセットをプロジェクトに追加します。
データ ソースを作成するには
[データ ソース] ウィンドウが表示されていない場合は、[データ] メニューの [データ ソースの表示] をクリックします。
メモ : [データ ソースの表示] が表示されていない場合は、Excel ブックの内部をクリックし、再び確認します。
[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データベース] をクリックし、[次へ] をクリックします。
SQL Server Northwind サンプル データベースへのデータ接続を選択するか、または [新しい接続] をクリックして新しい接続を追加します。
接続を選択または作成した後、[次へ] をクリックします。
接続を保存するオプションがオンになっている場合はオフにし、[次へ] をクリックします。
[データベース オブジェクト] ウィンドウの [テーブル] ノードを展開します。
[Employees] テーブルの横のチェック ボックスをオンにします。
[完了] をクリックします。
[データ ソース] ウィンドウに [Employees] テーブルが追加されます。さらに、ソリューション エクスプローラに表示されるプロジェクトに、型指定されたデータセットも追加されます。
ワークシートへのコントロールの追加
ブックを開くと、ワークシートに Employees テーブルが表示されます。ユーザーは、データに変更を加え、ボタンをクリックして変更内容をデータベースに保存できます。
テーブルに対してワークシートを自動的にバインドするには、[データ ソース] ウィンドウからワークシートに ListObject コントロールを追加します。変更を保存するオプションをユーザーが選択できるようにするには、ツールボックスから Button コントロールを追加します。
リスト オブジェクトを追加するには
Visual Studio デザイナで My Complex Data Binding.xls ブックが開いていて、Sheet1 が表示されていることを確認します。
[データ ソース] ウィンドウを開き、[Employees] ノードを選択します。
表示されるドロップダウン矢印をクリックします。
ドロップダウン リストで [ListObject] を選択します。
Employees テーブルをセル A6 にドラッグします。
EmployeesListObject という名前の ListObject コントロールがセル A6 に作成されます。同時に、EmployeesBindingSource という名前の BindingSource、テーブル アダプタ、および DataSet のインスタンスがプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。
ボタンを追加するには
- ツールボックスの [コモン コントロール] タブからワークシートのセル A4 へ、Button コントロールをドラッグします。
次の手順では、ワークシートを開くときにボタンにテキストを追加します。
コントロールの初期化
Startup イベント ハンドラで、ボタンにテキストを追加します。
コントロールを初期化するには
ソリューション エクスプローラで、Sheet1.vb または Sheet1.cs を右クリックし、ショートカット メニューの [コードの表示] をクリックします。
Sheet1_Startup メソッドに次のコードを追加し、button のテキストを設定します。
Me.Button1.Text = "Save"
this.button1.Text = "Save";
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 テーブルのデータがリスト オブジェクトに設定されていることを確認します。
データを変更するには
Davolio という名前が含まれているセル B7 をクリックします。
「Anderson」という名前を入力し、Enter キーを押します。
列ヘッダーを変更するには
LastName という列ヘッダーを含むセルをクリックします。
「Last Name」(2 つの単語の間には空白を含む) を入力し、Enter キーを押します。
データを保存するには
ワークシートの [<ファイル名> の保存] をクリックします。
Excel を終了します。変更の保存を確認するメッセージに対して、[いいえ] をクリックします。
F5 キーを押してプロジェクトを再び実行します。
リスト オブジェクトには、Employees テーブルのデータが設定されます。
セル B7 内の名前は Anderson であることに注意してください。これは、変更してデータベースに保存したデータです。列ヘッダーの LastName は、空白を含まない元の形式に戻っています。これは、列ヘッダーはデータベースにバインドされておらず、ワークシートへの変更を保存しなかったためです。
新規行を追加するには
リスト オブジェクト内のセルを選択します。
リストの下部に新規行が表示され、新規行の先頭のセルにはアスタリスク (*) が表示されます。
空の行に次の情報を追加します。
EmployeeID
LastName
FirstName
Title
10
Ito
Shu
Sales Manager
行を削除するには
- ワークシートの左端にある番号 16 (行 16) をクリックして、[削除] をクリックします。
リスト内の行を並べ替えるには
リスト内のセルを選択します。
各列ヘッダーに矢印ボタンが表示されます。
[Last Name] という列ヘッダーの矢印ボタンをクリックします。
[昇順で並べ替え] をクリックします。
姓のアルファベット順に行が並べ替えられます。
情報をフィルタ処理するには
リスト内のセルを選択します。
[Title] という列ヘッダーの矢印ボタンをクリックします。
[Sales Representative] をクリックします。
[Title] 列が [Sales Representative] の行のみ表示されます。
[Title] という列ヘッダーの矢印ボタンを再びクリックします。
[(すべて)] をクリックします。
フィルタが削除され、すべての行が表示されます。
次の手順
このチュートリアルでは、データベース内のテーブルをリスト オブジェクトにバインドする際の基本事項について説明します。次に行う作業は以下のとおりです。
オフラインでの使用を目的とする、データのキャッシュ。詳細については、「方法 : オフラインで使用するデータまたはサーバー上で使用するデータをキャッシュする」を参照してください。
ソリューションの配置。詳細については、「Office ソリューションの配置」を参照してください。
フィールドとテーブル間のマスター/詳細リレーションシップの作成。詳細については、「チュートリアル : キャッシュされたデータセットを使用したマスター/詳細関係の作成」を参照してください。
参照
処理手順
チュートリアル : ドキュメント レベルのプロジェクトでの単純データ バインディング