記事

IoTの格納先を考える(9)メインテナンス・プログラムの作成 その2

■ComboBoxの表示データ

 前回は、レコードごとに表示し、作曲者名を指定するとコードがテーブルにセットされるメインテナンス・プログラムを作りました。
 今回は、作者のComboBoxのリストにはアーティストテーブルの中の作曲家のみを「あいうえお順に表示する」方法を検討します。
 データベースに接続し、プロジェクトを作成し、データセット追加し、フォームにメディアテーブルの各項目をドラッグします。その下に作者と劇場を入力するためのComboBoxをツールボックスからドラッグします。

 ComboBoxの見出しはラベルのコントロールを作ります。作者はlabel1、劇場はlabel2を割り当てます。

●見出しの設定
 コントロールのLabel1を選択すると、プロパティのペインにlabel1のプロパティが表示されます。Textのプロパティ欄に作者とセットします。次に示すように、label2のTextプロパティには劇場をセットします。

 

●ComboBoxの設定
 ComboBoxのコントロールを選択し、三角のマークをクリックして次のようにコントロールの設定のダイアログボックスを表示し「データバインド項目を使用する」をチェックすると、バインドするデータを設定できるようになります。

 ComboBoxに設定する値を求めるために、次の項目が選定できるようになります。

データソース 表示するデータが格納されているテーブルを設定する
表示項目   ComboBoxに表示する項目を設定する。この場合作曲家の設定されている項目となる
値メンバー 選択される表示項目に対応する値メンバーが④に格納される。この場合、アーティストコードが値メンバーとなり、メディアテーブルの作者にセットされる
選択された値 選択された値を格納する項目を設定する。この場合メディアテーブルの作者となる

●データソースの設定
 データソースの設定は次のようにして行います。データソースの入力欄の右の四角いボタンをクリックすると、利用できるデータベースのテーブルが表示されます。テーブルまで展開されていない場合、展開し該当するテーブルを選択します。

 

 メディアテーブルがBindingSourceとして表示されています。今回はアーティストテーブルを利用する予定ですから、ほかのデータソースを展開します。

 

 ここではアーティストテーブルを選択します。

 アーティストテーブルには、作曲家以外の指揮者、ソプラノ、テノールなどの歌手も含まれています。ComboBoxのリストに表示するのは作曲家のみにして、見やすくしています。そのためにSQLで作曲家のみ選択、表示をあいうえお順にします。具体的には、「クエリの追加」を選択します。アーティストテーブルに対するクエリはこの時点で作成します。

 クエリ テキストには、アーティストテーブルからすべての項目とレコードを取り出す指定となっています。
 クエリビルダを利用します。クエリビルダをクリックして起動し、アーティスト名の順番に、作曲家のみ表示するように設定します。

 「クエリの実行」のボタンをクリックすると、クエリの実行結果を確認できます。
  次に示すように、作曲家のみが名前順に表示されています。

 「OK」ボタンをクリックして次に進みます。次に示すように、クエリのテキストが表示されます。WHERE (カテゴリ=N‘作曲家’)で作曲家のみ表示し、ORDER BY アーティスト名で名前順に表示されます。

 

 クエリの名前がFillByとなっています。この名前を、次に示すようにCOMPOSERに変更しました。

 

 作成されたクエリ composerを起動するアイコンがフォームの左上にセットされました。
 表示名にはアーティスト名、値メンバーはアーティストコードをセットします。

 

 選択された値(アーティストコード)をメディアテーブルの作者欄にセットするのが目的なので、次に示すようにメディアテーブルの作者をセットします。

 

 以上の設定を済ませ、「開始アイコン」をクリックして動作テストを行うと、次に示すようになります。クエリcomposerのアイコンをクリックしてアーティストテーブルから作曲家のみ選択し、名前順に並べ替え表示します。
 ComboBoxでリスト表示した作者のリストは作曲家のみで、名前順になっていて期待通りでした。

 

 今回も、コーディングすることなく設定を順番に選択するだけでフォームを完成させることができました。

(2017/8/28 V1.0)

 

<神崎康宏>

IoTの格納先を考える

(1) SQL Server Express

(2) ユーティリティのインストール

(3) 音楽データを題材に

(4) テーブルの検討

(5) SQL Server Management Studioでテーブルの作成

(6) Visual StudioでSQLSeverと連携

(7) Visual Studio 2017を利用

(8) メインテナンス・プログラムの作成

(9) メインテナンス・プログラムの作成 その2