チュートリアル : ドキュメント レベルのプロジェクトでの単純データ バインディング
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、ドキュメント レベルのプロジェクトでのデータ バインディングの基本事項について説明します。SQL Server データベース内の単一のデータ フィールドを Microsoft Office Excel 内の名前付き範囲にバインドする方法について説明します。テーブル内のすべてのレコードをスクロールできるようにするコントロールを追加する方法も説明します。
このチュートリアルでは、次の作業について説明します。
Excel プロジェクトのデータ ソースの作成
ワークシートへのコントロールの追加
データベース レコード間のスクロール
メモ : |
---|
お使いのマシンで、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 ブックのプロジェクトを作成します。
新しいプロジェクトを作成するには
- Visual Basic または C# を使用して、"My Simple Data Binding" という名前の Excel ブック プロジェクトを作成します。[新規ドキュメントの作成] が選択されていることを確認します。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
新しい Excel ブックが Visual Studio のデザイナに開かれ、My Simple Data Binding プロジェクトがソリューション エクスプローラに追加されます。
データ ソースの作成
[データ ソース] ウィンドウを使用して型指定されたデータセットをプロジェクトに追加します。
データ ソースを作成するには
[データ ソース] ウィンドウが表示されていない場合は、[データ] メニューの [データ ソースの表示] をクリックします。
メモ : [データ ソースの表示] が使用できない場合は、Excel ブックの内部をクリックしてから、再び確認してください。
[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データベース] をクリックし、[次へ] をクリックします。
Northwind サンプル SQL Server データベースへのデータ接続を選択するか、または [新しい接続] をクリックして新しい接続を追加します。
接続を選択または作成した後、[次へ] をクリックします。
接続を保存するオプションがオンになっている場合はオフにし、[次へ] をクリックします。
[データベース オブジェクト] ウィンドウの [テーブル] ノードを展開します。
[Customers] テーブルの横にあるチェック ボックスをオンにします。
[完了] をクリックします。
[Customers] テーブルが [データ ソース] ウィンドウに追加されます。さらに、ソリューション エクスプローラに表示されるプロジェクトに、型指定されたデータセットも追加されます。
ワークシートへのコントロールの追加
このチュートリアルでは、2 つの名前付き範囲と 4 つのボタンが最初のワークシートに必要です。最初に、2 つの名前付き範囲を [データ ソース] ウィンドウから追加して自動的にデータ ソースにバインドされるようにします。次に、ツールボックスからボタンを追加します。
2 つの名前付き範囲を追加するには
My Simple Data Binding.xls ブックが Visual Studio デザイナで開かれ、Sheet1 が表示されていることを確認します。
[データ ソース] ウィンドウを開き、[Customers] ノードを展開します。
[CompanyName] 列を選択し、表示されるドロップダウン矢印をクリックします。
ドロップダウン リストの NamedRange を選択し、CompanyName 列をセル A1 にドラッグします。
companyNameNamedRange という NamedRange コントロールがセル A1 に作成されます。それと同時に、customersBindingSource という BindingSource、テーブル アダプタ、および DataSet インスタンスがプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。
[データ ソース] ウィンドウの [CustomerID] 列を選択し、表示されるドロップダウン矢印をクリックします。
ドロップダウン リストの [NamedRange] を選択し、[CustomerID] 列をセル B1 にドラッグします。
customerIDNamedRange という別の NamedRange コントロールがセル B1 内に作成され、BindingSource にバインドされます。
4 つのボタンを追加するには
ツールボックスの [コモン コントロール] タブからワークシートのセル A3 へ、Button コントロールをドラッグします。
このボタンは Button1 という名前になります。
残りの 3 つのボタンを次の順序でセルに追加し、ボタンがこのとおりの名前になるようにします。
セル
(Name)
B3
Button2
C3
Button3
D3
Button4
次の手順で、テキストをボタンに追加します。C# ではイベント ハンドラを追加します。
コントロールの初期化
ボタン テキストを設定し、Startup イベント中にイベント ハンドラを追加します。
コントロールを初期化するには
ソリューション エクスプローラの Sheet1.vb または Sheet1.cs を右クリックし、ショートカット メニューの [コードの表示] をクリックします。
各ボタンにテキストを設定する次のコードを Sheet1_Startup メソッドに追加します。
With Me .Button1.Text = "|<" .Button2.Text = "<" .Button3.Text = ">" .Button4.Text = ">|" End With
this.button1.Text = "|<"; this.button2.Text = "<"; this.button3.Text = ">"; this.button4.Text = ">|";
C# の場合のみ、ボタン クリック イベントのイベント ハンドラを Sheet1_Startup メソッドに追加します。
this.button1.Click += new EventHandler(button1_Click); this.button2.Click += new EventHandler(button2_Click); this.button3.Click += new EventHandler(button3_Click); this.button4.Click += new EventHandler(button4_Click);
Click ボタンのイベントを処理するコードを追加し、ユーザーがレコード間を移動できるようにします。
レコード間をスクロールするためのコードの追加
レコード間を移動するためのコードを各ボタンの Click イベント ハンドラに追加します。
最初のレコードに移動するには
Button1 ボタンの Click イベントにイベント ハンドラを追加し、最初のレコードに移動するための次のコードを追加します。
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button1.Click Me.CustomersBindingSource.MoveFirst() End Sub
private void button1_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveFirst(); }
後方のレコードに移動するには
Button2 ボタンの Click イベントにイベント ハンドラを追加し、位置を 1 つ後方に移動するための次のコードを追加します。
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button2.Click Me.CustomersBindingSource.MovePrevious() End Sub
private void button2_Click(object sender, System.EventArgs e) { this.customersBindingSource.MovePrevious(); }
次のレコードに移動するには
Button3 ボタンの Click イベントにイベント ハンドラを追加し、位置を 1 つ前方に移動するための次のコードを追加します。
Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button3.Click Me.CustomersBindingSource.MoveNext() End Sub
private void button3_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveNext(); }
最後のレコードに移動するには
Button4 ボタンの Click イベントにイベント ハンドラを追加し、最後のレコードに移動するための次のコードを追加します。
Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button4.Click Me.CustomersBindingSource.MoveLast() End Sub
private void button4_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveLast(); }
アプリケーションのテスト
ブックをテストして、データベース内のレコード間を移動できることを確認できます。
ブックをテストするには
F5 キーを押してプロジェクトを実行します。
最初のレコードがセル A1 とセル B1 に表示されることを確認します。
[>] (Button3) ボタンをクリックし、次のレコードがセル A1 とセル B1 に表示されることを確認します。
他のスクロール ボタンをクリックして、レコードが適切に変わることを確認します。
次の手順
このチュートリアルでは、名前付き範囲をデータベース内のフィールドにバインドする際の基本事項について説明します。次に行う作業は以下のとおりです。
データをキャッシュしてオフラインで使用できるようにします。詳細については、「方法 : オフラインで使用するデータまたはサーバー上で使用するデータをキャッシュする」を参照してください。
セルを 1 つのフィールドではなくテーブル内の複数の列にバインドします。詳細については、「チュートリアル : ドキュメント レベルのプロジェクトでの複合データ バインディング」を参照してください。
BindingNavigator コントロールを使用してレコード間をスクロールします。詳細については、「方法 : Windows フォーム BindingNavigator コントロールを使用してデータ間を移動する」を参照してください。
参照
処理手順
チュートリアル : ドキュメント レベルのプロジェクトでの複合データ バインディング