チュートリアル : ドキュメント レベルのプロジェクトでの単純データ バインディング
このチュートリアルでは、ドキュメント レベルのプロジェクトでのデータ バインディングの基本事項について説明します。SQL Server データベース内の単一のデータ フィールドを Microsoft Office Excel 内の名前付き範囲にバインドする方法について説明します。テーブル内のすべてのレコードをスクロールできるようにするコントロールを追加する方法も説明します。
対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
このチュートリアルでは、次の作業について説明します。
Excel プロジェクトのデータ ソースの作成
ワークシートへのコントロールの追加
データベース レコード間のスクロール
[!メモ]
お使いのマシンで、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 ブックのプロジェクトを作成します。
新しいプロジェクトを作成するには
- Visual Basic または C# を使用して、"My Simple Data Binding" という名前の Excel ブック プロジェクトを作成します。[新規ドキュメントの作成] が選択されていることを確認します。詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。
新しい Excel ブックが Visual Studio のデザイナーで開き、My Simple Data Binding プロジェクトがソリューション エクスプローラーに追加されます。
データ ソースの作成
[データ ソース] ウィンドウを使用して型指定されたデータセットをプロジェクトに追加します。
データ ソースを作成するには
[データ ソース] のウィンドウが表示されない場合は、これを、[ビュー]、[その他のウィンドウ] を選択する、メニュー バーの [データ ソース] 表示されます。
[データ ソース構成ウィザード] を開始するには [新しいデータ ソースの追加] を選択します。
[データベース] をクリックし、[次へ] をクリックします。
Northwind サンプル SQL Server データベースへのデータ接続を選択するか、または [新しい接続] をクリックして新しい接続を追加します。
接続を選択または作成した後、[次へ] をクリックします。
接続を保存するオプションがオンになっている場合はオフにし、[次へ] をクリックします。
[データベース オブジェクト] ウィンドウの [テーブル] ノードを展開します。
[Customers] テーブルの横にあるチェック ボックスをオンにします。
[完了] をクリックします。
[Customers] テーブルが [データ ソース] ウィンドウに追加されます。さらに、ソリューション エクスプローラーに表示されるプロジェクトに、型指定されたデータセットも追加されます。
ワークシートへのコントロールの追加
このチュートリアルでは、2 つの名前付き範囲と 4 つのボタンが最初のワークシートに必要です。最初に、2 つの名前付き範囲を [データ ソース] ウィンドウから追加して自動的にデータ ソースにバインドされるようにします。次に、ツールボックスからボタンを追加します。
2 つの名前付き範囲を追加するには
[My Simple Data Binding.xlsx] ブックが 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 コントロールを使用してデータ間を移動する」を参照してください。
参照
処理手順
チュートリアル : ドキュメント レベルのプロジェクトでの複合データ バインディング