Microsoft Visual Basic .NET Windows アプリケー...

50
Microsoft ® Visual Basic ® .NET による Windows ® アプリケーションの作成

Transcript of Microsoft Visual Basic .NET Windows アプリケー...

Page 1: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Microsoft® Visual Basic® .NET による

Windows®アプリケーションの作成

Page 2: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

このテキストの中で使用しているアイコンの意味は以下のとおりです。 (OnePoint) 補足情報 (実習) 実習タイトル

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む) は、将来

予告なしに変更することがあります。別途記載されていない場合、このソフトウェアおよび関連するドキュメントで

使用している会社、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、出来事などの名称は架空

のものです。実在する名称とは一切関係ありません。お客様ご自身の責任において、適用されるすべての著作権関連

法規に従ったご使用を願います。

マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他

の無体財産権を有する場合があります。別途マイクロソフトのライセンス契約上に明示の規定のない限り、このドキ

ュメントはこれらの特許、商標、著作権、またはその他の無体財産権に関する権利をお客様に許諾するものではあり

ません。

Copyright © 2005 Microsoft Corporation. All rights reserved.

Microsoft、Windows、Visual Basic、および Visual Studio は、米国 Microsoft Corporation の米国およびその他の国に

おける登録商標または商標です。

記載されている会社名、製品名には、各社の商標のものもあります。

Page 3: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

はじめに

このホワイトペーパーでは、Microsoft® Access(以下、Access と表記します)によるアプリケーシ

ョン開発に携わっている方々を対象に、Microsoft® Visual Basic® .NET(以下、Visual Basic .NET と

表記します)によるプログラミングを、より早く理解していただくことを目的としています。

以下のとおり、ホワイトペーパーは全部で3部構成になっており、このうちの第1部が本ドキュ

メントとなります。

第1部 「Microsoft Access 開発者のための Microsoft Visual Basic .NET 入門」

Visual Basic .NET の概要や Access と比較して、どのような機能を備えているのかを

簡単に説明します。

第2部 「Microsoft Access と Microsoft Visual Basic .NET の

データアクセス テクノロジーの比較」

Visual Basic .NET のデータアクセス技術について、Access と比較しながら詳細に説

明します。

第3部 「Microsoft Visual Basic .NET による Windows アプリケーションの作成」

Visual Basic .NET で Windows のアプリケーションのサンプルを作成し、開発手法を

具体的に説明します。

Page 4: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

目次

第 1 章 アプリケーションを作成する前に.....................................................................................1 1.1 機能概要................................................................................................................................2 1.2 処理の流れ ............................................................................................................................3 1.3 データベースのテーブル構成................................................................................................4 1.4 開発環境................................................................................................................................5

第 2 章 Windows アプリケーションの作成 ...................................................................................6 2.1 プロジェクトの作成..............................................................................................................7 2.2 フォームの作成 ...................................................................................................................10 2.3 レポートの作成 ...................................................................................................................36

第 3 章 サンプル アプリケーションの実行 .................................................................................40 3.1 デバッグ実行.......................................................................................................................41 3.2 実行可能ファイルの作成.....................................................................................................42

Page 5: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 1

第1章 アプリケーションを作成する前に

◆第1章で理解できること

本章では、サンプル アプリケーションを作成する前に、その概要について説明します。

説明する内容は、次の通りです。

機能概要

処理の流れ

データベースのテーブル構成

開発環境

Page 6: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 2

1.1 機能概要

ここでは、Visual Basic .NET と Access データベースを組み合わせて作成した「社員情報検索シス

テム」というサンプル アプリケーションを作成します。

また、ユーザーインターフェースとして、次のような Windows フォームを使います。

図 1 社員情報検索システム

この社員情報検索システムでは、以下の機能を提供するものとします。

1. 社員名、組織の社員情報を検索条件とし、検索ボタンをクリックすることで検索結果が画面

に一覧表示されます。

2. 検索結果が画面に表示されている状態で、レポートボタンをクリックすることで帳票イメー

ジが表示されます。

Page 7: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 3

1.2 処理の流れ

サンプル アプリケーションの処理の流れは、次のようになります。

① クライアントで入力した検索条件をもとに Access データベースへデータの検索を要求

② Access データベースから①の検索条件に合致するデータを取得

③ ②で取得した結果を画面に一覧表示

④ 要求に応じて②の検索結果をレポート出力

図 2 サンプル アプリケーションの処理の流れ

Page 8: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 4

1.3 データベースのテーブル構成

サンプル アプリケーションでは、次のようなテーブルを使用します。

各テーブルの日本語名は、表 1 の通りです。

図 3 サンプル アプリケーションで使うテーブルの構成

表 1 M_STAFF(社員マスタ)と M_AFFILIATION(組織マスタ)

M_STAFF(社員マスタ)

項目名 日本語名

StaffID 社員 ID

StaffName 社員名

SexDistinction 性別

AffiliationID 組織 ID

OutsideLine 外線

Extension 内線

Email E-Mail

Remarks 備考

データベースについて

社員情報検索システムで使用しているデータベースは、次の URL からダウンロードできます。

サンプルデータベースのダウンロード

http://www.microsoft.com/japan/msdn/office/access/

M_AFFILIATION(組織マスタ)

項目名 日本語名

AffiliationID 組織 ID

AffiliationName 組織名

Page 9: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 5

1.4 開発環境

サンプル アプリケーションは、次の表 2 のソフトウェアを使用して作成します。

表 2 使用ソフトウェア一覧

分類 ソフトウェア

オペレーティングシステム Microsoft Windows XP Professional Service Pack 2

リレーショナルデータベース Microsoft Office Access 2003

統合開発環境 Microsoft Visual Studio .NET 2003

ランタイム Microsoft .NET Framework 1.1 Service Pack 1

図 4 使用ソフトウェア構成図

Page 10: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 6

第 2 章 Windows アプリケーションの作成

◆第2章で理解できること

本章では、具体的に Visual Basic .NET によるサンプル アプリケーションの作成方法を、説明します。

サンプル アプリケーションの作成は、次の手順で行います。

プロジェクトの作成

フォームの作成

レポートの作成

Page 11: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 7

2.1 プロジェクトの作成

アプリケーションを作成する場合は、最初に新規にプロジェクトを作成します。

プロジェクトとは

プロジェクト(.vbproj)とは、アプリケーションの作成に必要な複数のプログラムファイルをま

とめるためのファイルです。Access ではひとつのデータベースファイル(.mdb)にデータだけで

なくフォームやレポートに関する情報が含まれます。これに対し、Visual Basic .NET ではフォーム

やレポートといった要素は、それぞれ個別のファイルとして作成されます。こうしたファイル群

を管理して、ひとつのアプリケーションを作成するものがプロジェクトです。また、複数のアプ

リケーションやライブラリを包括的に管理するためにソリューション(.sln)というファイルがあ

ります。

新規プロジェクトの作成

1. Visual Studio .NET を起動し、[新しいプロジェクト(J)]をクリックします。

図 5 新しいプロジェクトの作成

[新しいプロジェクト(J)]をクリック

Page 12: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 8

2. 新しいプロジェクトが表示されます。ここでは、これからどのようなアプリケーションを作

成するのかを選択します。新しいプロジェクトの「Visual Basic プロジェクト」と「Windows アプリケーション」を選択し[OK]をクリックします。ここで、選択した「Visual Basic プロジェ

クト」とは、Visual Studio .NET(統合開発環境)の Visual Basic .NET(開発ツール)を使用すると

いう意味です。

図 6 プロジェクトの種類とテンプレートを選択

③[OK]をクリック

②「Windows アプリケーシ

ョン」を選択

①「Visual Basic プロジェクト」を選択

Page 13: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 9

新規プロジェクトが作成され、次の画面が表示されます。画面の名称は、表3の通りです。

図 7 新規プロジェクト作成直後の画面

表 3 画面名称

名称 説明

メニューバー ファイルの保存やデバッグなどの機能を実行するときに選

択するためのバー。

ツールボックス ユーザーインターフェースを設計するためのコントロール

群があります。

フォームデザイナ コントロールをドラッグ&ドロップしてユーザーインター

フェースを作成します。

プロパティウィンドウ エディタやデザイナで選択されたオブジェクトのプロパテ

ィの変更ができます。

ソリューションエクスプローラー プロジェクトで管理されているファイルの一覧が表示され

ます。

ソリューションエクスプローラー

ツールボックス フォームデザイナ

メニューバー

プロパティウィンドウ

Page 14: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 10

2.2 フォームの作成

Visual Studio .NET では、Access と同じような操作でフォームを編集できます。

ここでは、次の手順でアプリケーションの画面を作成するためにフォームを編集します。

1. フォームのデザイン

2. 組織名コンボボックスの設定

3. 検索ボタンの設定

4. 検索結果表示用データグリッドの設定

5. レポートボタンの設定

フォームのデザイン

フォームのデザインは、デザイン画面のツールボックスから作成したいコントロールを選択し、

フォームにドラッグ&ドロップすることで作成できます。

コントロールの貼り付け

1. 画面の左端にある[ツールボックス]の「Windwos フォーム」タブからコントロールを選択し貼

り付けます。

図 8 コントロール貼り付け後の画面

1

2

3

4

5

6

8

9

7

Page 15: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 11

貼り付けるコントロールは、次の表 4 の通りです。

表 4 コントロール表

NO オブジェクト名 説明

1 GroupBox1 検索条件グループボックス

2 Label1 組織名ラベル

3 Label2 社員名ラベル

4 ComboBox1 組織名コンボボックス

5 TextBox1 社員名テキストボックス

6 Button1 検索ボタン

7 Button2 レポートボタン

8 DataGrid1 検索結果表示用データグリッド

9 CrystalReportViewer1 レポート表示用ビューアー*注

コントロールを配置する順序には注意してください。たとえば、グループボックスの上にコント

ロールを配置して、グループボックスを移動すると、その上のコントロールも一緒に移動します

(グループボックスは別のコントロールを載せるコンテナとして機能します)。ラベルの後で、グ

ループボックスを配置すると、グループボックスがラベルを覆い隠してしまいます。

*注 Crystal レポートは、Visual Studio .NET 2003 Professional エディション以上で提供されます。

Visual Basic .NET 2003 Standard エディションには含まれません。

Page 16: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 12

組織名コンボボックスの設定

ここでは、検索条件の組織名コンボボックス(ComboBox1)に組織名の一覧を表示するための設

定を行います。組織名の一覧は、M_AFFILIATION テーブルから、すべての AffiliaionName 項目を

抽出した結果となります。

データの取得方法について

Visual Basic .NET では、データベースからデータを取得する方法の1つにデータアダプタを利用し

てデータを取得し、データセットを作成する方法があります。次の図は、データアダプタを利用

したデータの取得方法を表わしています。

① データアダプタは、コネクションを利用してデータベースとの接続を確立します。 ② コネクションは、データアダプタとデータベースを接続します。 ③ データアダプタは、指定されたクエリを元にデータベースからデータを取得します。 ④ データアダプタは、取得したデータを元にデータセットを作成します。

データセットは、データベースのコピーを保持するオブジェクトそのもので、読み取った結果を

保持しています。

データアダプタの作成

まず、データベースから組織名を取得するために、データベースに対する接続の設定とクエリを

作成します。

1. データベースからデータを取得してデータセットを作成するために、[ツールボックス]-[データ]タブから OleDbDataAdapter を選択しフォーム上にドラッグします。

図 9 ツールボックスから OleDbDataAdapter を選択

[OleDbDataAdapter]を選択

Page 17: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 13

2. データベースへの接続設定を行うデータアダプタ構成ウィザードが表示されるので、[次へ

(N)>]をクリックします。

図 10 OleDbDataAdapter の作成

3. 利用できる接続設定を選択する「データ接続の選択」が表示されます。データベースへの新

しい接続を定義するために[新しい接続(C)...]をクリックします。

図 11 新しいデータ接続の作成

[次へ(N)>]をクリック

[新しい接続(C)…]をクリック

Page 18: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 14

4. 新しい接続を定義するデータリンク プロパティが表示されるので、接続するサーバーの設定

を定義します。まず、接続するデータベースの種類を選択します。ここでは、プロバイダタ

ブで「Microsoft Jet 4.0 OLE DB Provider」を選択して[次へ(N)>>]をクリックします。

図 12 プロバイダの選択

5. 次に、データベースに対する接続設定を定義します。ここでの接続設定は、次の表 5 の通り

です。正しく接続できるかは右下にある[接続のテスト(T)]ボタンで確認できます。接続が

確認できたら、[OK]をクリックしてください。これでデータベースに対する接続が定義され

ます。データ構成ウィザードに戻るので[次へ(N)>]をクリックします。

図 13 データベースの接続設定

表 5 データベースの接続設定値

項目名 設定値

データベース名を選択または入力します(D): C:¥SampleDb.mdb

データベースへのログオンに必要な情報を入力します: Admin

パスワードを保存する(S) チェック

②[次へ(N)>>]をクリック

①使用するデータベースを入力

③「パスワードを保存する(S)」を

チェック

②データベースにログオン

するユーザー名を入力

①「Microsoft Jet 4.0 OLE DB

Provider」を選択

Page 19: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 15

6. データベースに対する接続が定義できたら次に、発行するクエリの種類を選択する「クエリ

の種類の選択」が表示されます。ここでは、クエリを作成するので「SQL ステートメントの

使用(S)」を選択して[次へ(N)>]をクリックします。

図 14 クエリの種類の選択

7. データベースに発行するクエリを作成する「SQL ステートメントの生成」が表示されます。

ここでは、クエリを視覚的に作成するために[クエリビルダ(Q)...]をクリックします。

図 15 SQL ステートメントの生成

①「SQL ステートメントの

使用(S)」を選択

②[次へ(N)>]をクリック

[クエリ ビルダ(Q)…]をクリック

Page 20: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 16

8. 視覚的にクエリを作成するクエリ ビルダと対象となるテーブルを選択するテーブルの追加

が表示されます。テーブルの追加では、「M_AFFILIATION」を選択した状態で[追加(A)]をクリックします。

クエリ ビルダとは

クエリ ビルダでは、Access のクエリの操作機能と同じように視覚的にクエリを作成することがで

きます。

図 16 テーブルの追加

9. 選択されたテーブルがクエリ ビルダに追加されます。必要となるテーブルが追加できたらテ

ーブルの追加の[閉じる(C)]をクリックします。

10. クエリ ビルダに追加したテーブルが表示されます。抽出したい項目をチェックすることで自

動にクエリが作成されます。ここでは、抽出する項目として次の表 6 の項目をチェックしま

す。

表 6 クエリ ビルダに表示されたテーブルでチェックする項目

テーブル名 項目名

M_AFFILIATION AffiliationID

M_AFFILIATION AffiliationName

①「M_AFFILIATION」を選択

②[追加(A)]をクリック

Page 21: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 17

11. チェックをしたら、クエリが自動に作成されます。また自動で作成したクエリは直接編集す

ることが可能です。ここでは、組織名を表示させるだけなのでこのまま[OK]をクリックしま

す。

図 17 クエリが自動生成されたクエリ ビルダ

12. データアダプタ構成ウィザードの「データアダプタでデータセットに読み込むデータ(W)」

にクエリ ビルダで作成したクエリが表示されます。データアダプタはデータの抽出だけでな

く更新もサポートしていますので自動で、INSERT 文や UPDATE 文が生成されてしまいます。

今回は、データの抽出だけでよいのでデータアダプタ構成ウィザードの[詳細オプション

(A)...]をクリックします。

図 18 クエリビルダで作成されたクエリ

[OK]をクリック

[詳細オプション(A)…]をクリック

Page 22: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 18

13. SQL 生成の詳細オプションが表示されます。ここでは SELECT 文以外は不要ですので

「INSERT、UPDATE、および DELETE ステートメントの生成(G)」のチェックをはずして

[OK]をクリックします。

図 19 作成するクエリの種類を選択

14. データアダプタ構成ウィザードが表示されます。クエリ作成の設定は完了したのでそのまま

[次へ(N)>]をクリックします。

図 20 クエリの作成

①「INSERT,UPDATE,およ

び DELETE ステートメン

トの生成(G)」のチェック

をはずす ②[OK]をクリック

[次へ(N)>]をクリック

Page 23: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 19

15. ウィザードの結果の表示が表示されます。これには、クエリを実際に作成した結果が表示さ

れます。[完了(F)]をクリックします。

図 21 クエリ作成の結果

16. 「接続文字列にパスワードを含めますか?」が表示されます。これはデータアダプタからデ

ータベースに接続する際に利用するデータコネクションの接続文字列のことです。接続文字

列にパスワードを含めないとアプリケーションがデータコネクションを利用するたびにパス

ワードの入力が必要になるのでここでは、[パスワードを含める]をクリックします。

図 22 データコネクションの接続文字列

17. OleDbDataAdapter1 と OleDbConnection1 が作成されます。

図 23 作成された OleDbDataAdapter1 と OleDbConnection1

[完了(F)]をクリック

[パスワードを含める]をクリック

Page 24: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 20

データセットの作成

次に、作成したデータアダプタからデータセットを作成します。

1. データセットを作成するために OleDbDataAdapter1 のプロパティを開きます。プロパティの

「データセットの生成...」をクリックします。

図 24 OleDbDataAdapter1 のプロパティ

2. データセットを作成するデータセットの生成が表示されます。新しくデータセットを作成す

るので「新規作成(N)」を選択し[OK]をクリックします。

図 25 OleDbDataAdapter1 から新規にデータセットを作成

3. OleDbDataAdapter1 から DataSet11 が作成されます。

図 26 作成された DataSet11

「データセットの生成…」をクリック

①「新規作成(N)」をクリック

②[OK]をクリック

Page 25: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 21

プロパティ変更

次に、作成したデータセットを ComboBox1 に表示させるために、プロパティを変更します。

ComboBox1 のプロパティを編集します。データベースと関連付けるために、次の表7のようにプ

ロパティを設定します。

表 7 データプロパティの設定項目

プロパティ 設定値

DataSouce DataSet11

DiaplayMember AffiliationName

ValueMember AffiliationID

DropDownStyle DropDownList

図 27 ComboBox1 のプロパティ

①DataSet11 を選択

③[M_AFFILIATION.AffiliationID]を選択

②[M_AFFILIATION.AffiliatoinName]を選択

④[DropDownList]を選択

Page 26: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 22

初期表示のコードの記述

次に、アプリケーションの初期起動時に ComboBox1 にデータセットの内容を表示させるためのコ

ードを記述します。フォームをダブルクリックして、次のコードを記述します。

リスト 1 初期表示のコード

Load は、フォームをダブルクリックすると空のハンドラとして自動生成されます。

1. Load メンバは、フォームが読み込まれたときに実行されます。

2. SqlDataAdapter1 からデータを取得しデータセットに設定します。

検索ボタンの設定

ここでは、検索ボタン(Button1)をクリックしたときに、画面に入力された社員情報をもとにデ

ータベースを検索し、結果を画面に表示させるための設定を行います。

データアダプタの作成

画面に入力された社員情報を元に、データベースから該当データを取得するためにデータアダプ

タを作成します。

1. [ツールボックス]-[データ]タブから OleDbDataAdapter を選択しフォーム上にドラッグしま

す。データベースへの接続設定を行うデータアダプタ構成ウィザードを呼び出します。[次へ

(N)>]をクリックします。

図 28 データアダプタ構成ウィザード

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MyBase.Load

'フォームの初期設定

OleDbDataAdapter1.Fill(DataSet11)

End Sub

12

[次へ(N)>]をクリック

Page 27: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 23

2. データベースに接続する接続設定を選択します。「データアダプタで使用するデータ接続

(W)」から「組織名コンボボックスの設定」でコネクションを作成したときの接続設定が残

っているので、選択して[次へ(N)>]をクリックします。

図 29 作成したデータ接続を選択

3. データベースに対する接続が設定できたら次に、発行するクエリの種類を選択する「クエリ

種類の選択」が表示されます。ここでは、クエリを作成するので「SQL ステートメントの使

用(S)」を選択し、[次へ(N)>]をクリックします。

図 30 クエリ種類の選択

①作成されている接続設定を選択

②[次へ(N)>]をクリック

①[SQL ステートメント

の使用(S)]のチェック

②[次へ(N)>]をクリック

Page 28: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 24

4. データベースに発行するクエリを入力する「SQL ステートメントの生成」が表示されます。

ここでは、クエリを視覚的に作成するために[クエリ ビルダ(Q)...]をクリックします。

図 31 SQL ステートメントの生成

5. 視覚的にクエリを作成するクエリ ビルダと対象となるテーブルを選択するテーブルの追加

が表示されます。社員情報を元に検索を行うためにテーブルの追加で、「M_STAFF」と

「M_AFFILIATION」を選択して[追加(A)]をクリックします。

図 32 テーブルの追加

6. 選択されたテーブルがクエリ ビルダに追加されるので、必要となるテーブルが追加できたら

そのままテーブルの追加の[閉じる(C)]をクリックします。

[クエリ ビルダ(Q)…]

をクリック

①「M_STAFF」と「M_AFFILIATION」を選択

②[追加(A)]をクリック

Page 29: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 25

7. クエリ ビルダに追加したテーブルが表示されていると思います。ここでは、抽出する項目と

して次の表 8 の項目をチェックをします。

表 8 クエリ ビルダに表示されたテーブルでチェックする項目

テーブル名 項目名

M_STAFF StaffID

M_STAFF StaffName

M_STAFF SexDistinction

M_STAFF AffiliationID

M_AFFILIATION AffiliationName

M_STAFF OutsideLine

M_STAFF Extension

M_STAFF EMail

M_STAFF Remarks

8. 入力された検索条件をクエリの抽出条件として設定します。次の表9の項目を入力します。

表 9 抽出条件を入力する項目

列 抽出条件

StaffName LIKE ’%’+?+’%’

AffiliationID LIKE ’%’+?+’%’

9. チェックをして抽出条件を入力したら、クエリが自動で作成されるので[OK]をクリックしま

す。

図 33 クエリが自動生成されたクエリ ビルダ

①抽出する項目をチェック

②抽出条件を入力

③[OK]をクリック

Page 30: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 26

10. 「データアダプタでデータセットに読み込むデータ(W)」に作成されたクエリが表示されま

す。今回は、データの抽出しか行わないので「組織名コンボボックスの設定」と同じように[詳細オプション(A)...]をクリックします。

図 34 クエリ ビルダで作成されたクエリ

11. 「SQL 生成の詳細オプション」が表示されます。ここでは SELECT 文以外は不要ですので

「INSERT,UPDATE,および DELETE ステートメントの生成(G)」のチェックをはずし

て[OK]をクリックします。

図 35 作成するクエリの種類を選択

[詳細オプション(A)…]をクリック

① [INSERT,UPDATE, お よ

び DELETE ステートメン

トの生成(G)]のチェックを

はずす ②[OK]をクリック

Page 31: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 27

12. データアダプタ構成ウィザードが表示されます。クエリ作成の設定は完了したのでそのまま

[次へ(N)>]をクリックします。

図 36 クエリの作成

13. ウィザードの結果の表示が表示されます。 [完了(F) ]をクリックします。これで、

OleDbDataAdapter2 が作成されます。

図 37 クエリ作成の結果

14. OleDbDataAdapter2 が作成されます。

図 38 作成された OleDbDataAdapter2

[次へ(N)>]をクリック

[完了(F)]をクリック

Page 32: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 28

データセットの作成

次に、作成したデータアダプタからデータセットを作成します。

1. データセットを作成するために OleDbDataAdapter2 のプロパティを開きます。プロパティの

「データセットの生成...」をクリックします。

図 39 OleDbDataAdapter2 のプロパティ

2. データセットを作成するデータセットの生成が表示されるので「新規作成(N)」を選択し

[OK]をクリックします。

図 40 データセットの生成

3. OleDbDataAdapter2 から DataSet21 が作成されます。

図 41 作成された DataSet21

[データセットの生成…]をクリック

[OK]をクリック

Page 33: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 29

検索処理のコードの記述

Button1 をクリックした際に、検索処理を行うためにコードを記述します。

Private Sub Button1_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles Button1.Click

'画面の検索条件をクエリに反映させる

OleDbDataAdapter2.SelectCommand.Parameters. _

Item("StaffName").Value = TextBox1.Text.Trim()

OleDbDataAdapter2.SelectCommand.Parameters. _

Item("AffiliationID").Value = ComboBox1.SelectedValue

'DataSet の初期化

DataSet21.Clear()

'Crystal レポートの初期化

CrystalReportViewer1.ReportSource = Nothing

'クエリを実行し、結果を DataSet に設定

OleDbDataAdapter2.Fill(DataSet21)

'検索結果が 0件の場合、メッセージを表示

If DataSet21.Tables("M_STAFF").Rows.Count() < 1 Then

MsgBox("該当データがありませんでした。", MsgBoxStyle. _

OKOnly, "メッセージ")

Button2.Enabled = False

Exit Sub

End If

'Button2 を活性化

Button2.Enabled = True

End Sub

リスト 2 検索処理コード

2

3

4

5

1

6

7

Page 34: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 30

1. フォーム上で Button1 をダブルクリックすると生成されるコードです。このメンバは Button1がクリックされたときに実行されます。

2. OleDbDataAdapter2 を作成したとき定義したクエリの抽出条件に、画面に入力した検索条件

を代入します。これにより OleDbDataAdapter2 に定義されているクエリが完成します。

3. DataSet21 に入っている情報を初期化します。

4. CrystalReportViewer1 に入っている情報を初期化します。

5. OleDbDataAdapter2 を実行し DataSet21 にデータを入れます。

6. DataSet21 に入っているデータが0件の場合、エラーメッセージを画面に表示します。

7. Button2 を有効にします。

Page 35: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 31

検索結果表示用データグリッドの設定

ここでは、取得したデータを検索結果表示用データグリッド(DataGrid1)に表示させるための設

定をします。

データグリッドとは

検索結果を表示させるために、データグリッドを使用します。データグリッドには、データアダ

プタから生成したデータセットを利用してデータを表示することができます。

表示設定

DataGrid1 にデータセットのデータを表示させる設定をします。

1. DataGrid1 に表示させるデータを次の表10の通りに選択します。DataGrid1 のプロパティ-

[DataMember]に「M_STAFF」を[DataSource]に「DataSet21」を選択します。

図 42 DataGrid1 のプロパティ

表 10 DataGrid1 のプロパティに設定する項目

データプロパティ 値

DataMember M_STAFF

DataSource DataSet21

「DataMember」に「M_STAFF」を選択

「DataSource」に「DataSet21」を選択

Page 36: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 32

2. 次に、データグリッドに表示する列名を任意の名称にするために DataGrid1 のプロパティを編

集します。データプロパティの「TableStyles」の[...]をクリックします。

図 43 DataGrid1 のプロパティ

3. 表示するデータの行を定義する DataGridTableStyle コレクションエディタが表示されます。

[追加(A)]をクリックすると DataGridTableStyle1 が追加されます。DataGridTableStyle1 は1

行をあらわすオブジェクトです。続けて、DataGridTableStyle1 の列に対する設定を行うために

DataGridTableStyle1 のその他プロパティ「GridColumnStyle」の[...]をクリックします。

図 44 DataGridTableStyle コレクションエディタ

「TableStyles」の[…]をクリック

①「GridColumnStyle」の[…]をクリック

②[追加(A)]をクリック

Page 37: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 33

4. 表示するデータの列を定義する DataGridColumnStyle コレクションエディタが表示されます。

[ 追 加 ( A ) ] を ク リ ッ ク す る と DataGridTextBoxColumn1 が 作 成 さ れ ま す 。

DataGridTextBoxColumn1 は1列をあらわすオブジェクトです。DataGridTextBoxColumn1 のそ

の他プロパティ「MappingName」に「StaffID」を、表示プロパティ「HeaderText」に「社員 ID」

を設定します。この操作を、表示させる項目分行います。次の表11のように設定します。

図 45 GridColumnStyle コレクションエディタ

表 11 GridColumnStyle コレクションエディタに追加するメンバ一覧

メンバ その他プロパティ 表示プロパティ

DataGridTextBoxColumn1 StaffID 社員 ID

DataGridTextBoxColumn2 StaffName 社員名

DataGridTextBoxColumn3 SexDistinction 性別

DataGridTextBoxColumn4 AffiliationID 組織 ID

DataGridTextBoxColumn5 AffiliationName 組織名

DataGridTextBoxColumn6 OutsideLine 外線

DataGridTextBoxColumn7 Extension 内線

DataGridTextBoxColumn8 EMail E-Mail

①「StaffID」を選択

②「社員 ID」を入力

Page 38: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 34

レポートボタンの設定

ここでは、レポートボタン(Button2)をクリックしたときに検索結果をレポートに表示させるた

めの設定をします。

レポート出力処理のコード記述

Button2 のクリック時に、レポートの出力処理を行うためのコードを記述します。

1. フォーム上で Button2 をダブルクリックすると生成されるコードです。このメンバは Button2がクリックされたら動くコードです。

2. CrystalReport インスタンスを生成します。ここで、記述している CrystalReport1 は「レポート

の作成と設定」にて紹介します。

3. CrystalReport インスタンスに DataSet21 を設定します。

4. レポート表示用ビューアー(CrystalReportViewer1)に CrystalReport インスタンスを設定して

います。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

'CrystalReportインスタンスを生成

Dim crystalReport As CrystalReport1 = New CrystalReport1

'CrystalReportインスタンスにDataSetを設定

crystalReport.SetDataSource(DataSet21)

'CrystalReportViewerにCrystalReportを表示

CrystalReportViewer1.ReportSource = crystalReport

End Sub

リスト 3 レポート表示処理

1

2

3

4

Page 39: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 35

ボタンの設定

検索結果が表示されるまでレポートボタンを使用不可にするための設定をします。

1. レポートボタンの動作プロパティの「Enabled」を「False」にします。

図 46 レポートボタンのプロパティ

False を選択

Page 40: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 36

2.3 レポートの作成

画面に表示されている検索結果をレポートとして出力するために、レポートの作成と設定をしま

す。Visual Studio .NET には、レポート作成ツールとして「Crystal Reports for Visual Studio .NET(以

下 Crystal レポートと表記します。)」が付属しています。今回は、Crystal レポートを利用してレポ

ートを作成します。

Crystal レポートとは

Crystal レポートは、レポート作成やグラフ表示を行うツールです。簡単な GUI 操作で帳票のレイ

アウトが設計できます。

レポートの作成

ここでは、Crystal レポートを使用するための設定をします。

Crystal レポートの生成

新規に Crystal レポートを作成します。

1. メニューの[ファイル(F)]-[新しい項目の追加(W)]を選択します。

図 47 レポートの作成

新しい項目の追加(W)を選択

Page 41: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 37

2. 新しく作成するテンプレートを選択する新しい項目の追加が表示されます。ここでは、Crystalレポートを作成するので「テンプレート(T)」の「Crystal レポート」を選択し[開く(O)]をクリックします。

図 48 新しい項目の追加

3. Crystal レポートの種類を選択する Crystal レポート ギャラリが表示されます。「レポートエキ

スパートを使用(R)」と「エキスパートの選択」の「フォーム」を選択し[OK]をクリックし

ます。

図 49 Crystal レポート ギャラリ

①「Crystal レポート」を選択

②[開く(O)]をクリック

①[レポートエキスパートを使用(R)]を選択

②[フォーム]を選択

③[OK]をクリック

Page 42: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 38

4. Crystal レポートで使用するデータなどを選択しレポートに定義するフォーム レポート エキ

スパートが表示されます。ここでは、Crystal レポートに検索結果を表示させます。まず「デ

ータ」タブの「プロジェクトデータ」の「ADO.NET データセット」の「DataSet2」の「M_STAFF」を選びレポートに表示させるデータを選択します。[テーブルの挿入(T)]をクリックします。

テーブルが追加されたら[次(N)>>]をクリックします。

図 50 フォーム レポート エキスパートのデータタブ

5. Crystal レポートに表示させるデータの項目を選択する「フィールド」タブが表示されます。

ここでは、全ての項目を表示させるので[すべて追加(D)->]をクリックし[完了(F)]をクリ

ックします。これで、CrystaReport1 が作成されます。

図 51 フォーム レポート エキスパートのフィールドタブ

①「M_STAFF」を選択

③[次(N)>>]を選択

①[すべて追加(D)->]をクリック

②[完了(F)]をクリック

②[テーブルの挿入(T)]をクリック

Page 43: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 39

レポートのデザイン

レポートのデザインを ReportDesigner 画面で編集します。ReportDesigner 画面では、Access と同じ

ように視覚的な操作でレポートのデザインが作成することができます。

図 52 ReportDesigner 画面

Page 44: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 40

第 3 章 サンプル アプリケーションの実行

◆第3章で理解できること

本章では、実際に作成したサンプル アプリケーションを利用して、次の2種類の実行方法を説明し

ます。

デバッグ実行

実行可能ファイルの作成

Page 45: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 41

3.1 デバッグ実行

Access では、クエリやフォームを開くだけで、簡単にアプリケーションを実行できます。Visual Basic .NET でも、デバック機能を使用して、簡単にアプリケーションを実行できます。

1. メニューの[デバッグ(D)]-[開始(S)]を選択します。

図 53 メニューからデバッグを選択

2. 作成したアプリケーションが表示されます。

図 54 実行されたアプリケーション

[開始(S)]を選択

Page 46: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 42

3.2 実行可能ファイルの作成

作成したサンプル アプリケーションをアプリケーションとして使用するために、実行可能ファイ

ルを作成します。

実行可能ファイルとは

実行可能ファイル(.exe)とは、作成したアプリケーションをそのまま実行できる形式に出力した

ものです。Access では、実行のみのデータベースファイル(.mde)を作成して配布することがで

きます。これに対し、Visutal Basic .NET では実行可能ファイルを作成して配布することができま

す。

1. 実行可能ファイルを作成するために、メニューの[ビルド(B)]-[構成マネージャ(O)…]を選択します。

図 55 メニューバーから構成マネージャを選択

2. ビルドの構成を選択する、構成マネージャが表示されます。ここでは、実行可能ファイルを

作成するため、「アクティブソリューション構成(A)」で「Release」を選択します。

図 56 リリース版(Release)を選択

[構成マネージャ(O)…]を選択

[Release]を選択

Page 47: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 43

3. ビルドの構成を変更したら、実際にビルドを行います。メニューの[ビルド(B)]-[ソリュー

ションのビルド(B)]を選択します。これで実行可能ファイルが作成されます。

図 57 ソリューションビルドを選択

4. 実行可能ファイルは、プロジェクトを作成したフォルダの bin フォルダの中に作成されていま

す。

図 58 実行可能ファイル

[ソリューションのビルド(B)]を選択

作成された実行可能ファイル

Page 48: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 44

5. 作成された実行可能ファイルをダブルクリックするとアプリケーションが起動します。

図 59 実行されたアプリケーション

Page 49: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 45

参考資料

このホワイトペーパーでは、Visual Basic .NET で Windows アプリケーションを作成しました。

Visual Basic .NET には、今回紹介した機能の他にも、まだまだたくさんの便利な機能があります。

Visual Basic .NET の詳細については、次のサイトを参考にしてください。

● Visual Studio ホーム

http://www.microsoft.com/japan/msdn/vstudio/

● NET Framework ホーム

http://www.microsoft.com/japan/msdn/netframework/

● Windows プログラミングのためのユーザーインターフェイス要素

http://www.microsoft.com/japan/msdn/library/ja/vsintro7/html/vxoriwindowsformsuiref.asp

● Microsoft Visual DataBase Tools

http://www.microsoft.com/japan/msdn/library/ja/vdbt7/html/dvoriVisualDatabaseTools.asp

● Crystal Reports

http://www.microsoft.com/japan/msdn/library/ja/crystlmn/html/crconcrystalreports.asp

Page 50: Microsoft Visual Basic .NET Windows アプリケー …download.microsoft.com/download/5/F/8/5F8F047C-A737-4DF3...Visual Basic .NETによるWindowsアプリケーションの作成

Visual Basic .NET による Windows アプリケーションの作成 46

まとめ

本ペーパーでは、Visual Basic .NET での Windows アプリケーションの作成方法を説明しました。

サンプル アプリケーションを作成することで、次のようなポイントが理解できます。

フォームの作成方法

データアクセスの実装方法

レポートの作成方法

イベントコードの記述方法

アプリケーションの実行方法

Visual Basic .NET でも、Access と同じように視覚的にわかりやすい操作性でアプリケーションを

作成できます。さらに、Visual Basic .NET では、Windows アプリケーションの作成とほとんど同じ

手法で Web アプリケーションを作成できます。また、オブジェクト指向プログラミングもサポー

トしていますので、Visual Basic .NET への理解を深めることで仕事の幅を大きく広げることができ

ます。