 |
Tutorials and Guide to Samples (v11) |
 |
|
レッスン 3:2 つのテーブルからのレコードを結合する(ActiveX を使用する Visual Basic チュートリアル)
このレッスンでは、関連する 2 つの異なるテーブルからのレコードを表示する方法を説明します。これは、データベースのプログラミングに便利なテクニックです。このレッスンでは、Student テーブルの生徒の成績情報に関連する Person テーブルからの同一生徒の個人情報を表示します。ここでは、以下の操作を行います。
VAccess コントロールの追加
VAccess コントロールを追加するには
- 2 つ目の VAccess コントロールを frmVAccess フォームに配置し、Name プロパティを "VAccess2" のままにします。
- 3 つのファイルの場所プロパティを以下のように設定します。
プロパティ
|
値
|
DdfPath
|
file_path¥PSQL¥DEMODATA
|
TableName
|
Person
|
Location
|
file_path¥PSQL¥DEMODATA¥Person.mkd
|
- Pervasive PSQL ファイルのデフォルトの保存場所については、『Getting Started with Pervasive PSQL』の 「Pervasive PSQL ファイルはどこにインストールされますか?」を参照してください。
VAccess コントロールの結合
2 つの VAccess コントロールを結合するには
- [プロパティ ページ]ダイアログ ボックスの[Join]をクリックし、次のダイアログ ボックスを開きます。
図 12 [Join Controls]ダイアログ ボックス
- このダイアログ ボックスに表示される情報には、結合するテーブル(Person)、そのテーブルで選択されているインデックス(0-1D)、結合する VAccess コントロール(VAccess1)、コントロールで使用可能なフィールドが含まれます。
- 2 つのフィールドを結合するには、各 VAccess コントロールのデータ型が同じ(両方が文字列、両方が整数など)である必要があります。この場合、結合するフィールドの名前も同じ(ID と ID)ですが、これを同じにする必要はありません。
- 左側のリスト ボックスは、Person テーブルのインデックス(ID)です。このフィールドのデータは、VAccess1(VAccess コントロール)の ID フィールドと同等のもので、右側のリスト ボックスの 3 番目の項目です。
- [Fields]リスト内の "ID" をダブルクリックし、VAccess2 コントロールの ID フィールドを、VAccess1 コントロールの ID フィールドに結合します。
- "ID" フィールドが [Equals] 行に表示され、VAccess2 コントロールの ID フィールドに結合されます。図 13 のようなダイアログ ボックスが表示されます。
図 13 2 つの VAccess コントロールの結合フィールド
- [OK]をクリックします。[プロパティ ページ]ダイアログ ボックスにある[Join]ボタンの隣のテキスト ボックスに、以下のテキストが表示されます。
VAccess1:ID
- このテキストは、選択した VAccess2 コントロールが、ID フィールドを通じて VAccess1 コントロールに結合されることを表します。
- [OK]をクリックして結合を実行します。
個人データ フォームの追加と表示
ここでは、別のフォームを追加します。このフォームには、生徒の個人データが読み取り専用で表示されます。
結合フィールドのある読み取り専用フォームを作成するには
- プロジェクトにフォームを追加します。Name プロパティを "frmPersonalData" に、Caption プロパティを "Personal Data" に変更します。
- frmStudentBrowser フォームの[Browse Personal Data]ボタンのクリック時に PersonalData フォームを表示させるには、フォームに移動してボタンをダブルクリックします。Click イベントに以下のコードを入力します。
frmPersonalData.Show
VAccessForm.VAccess2.Refresh
- 次に、下図を参考にテキスト ボックスとラベルを追加し、後に追加する[Male/Female]オプション ボタン用のスペースを確保しておきます。
図 14 読み取り専用個人データ フォーム
- 各コントロールの VAccessName プロパティを "VAccess2" に設定し、以下の VAFieldName をそれぞれ選択します。
- Last_Name
- First_Name
- Perm_Street
- Perm_City
- Perm_State
- Perm_Zip
- 各テキスト ボックスの[プロパティ ページ]で、[Styles]タブをクリックします。[ReadOnly]チェック ボックスをオンにして[OK]をクリックします。
図 15 テキスト ボックスの読み取り専用設定
- [Male/Female]オプション コントロールを配置する Visual Basic Frame コントロールを、フォームに作成します。
- 2 つの VAOptionButton をフレーム内に追加し、[Male]および[Female]ラベルを追加します。
- 両方のオプション ボタンの[プロパティ ページ]で、VaccessNameに "VAccess2" を、VAFieldName に "Sex" を選択します。
- [Female]ボタンに[Male]ボタンと逆の情報を表示するには、VAValueTrue を 0 に、VAValueFalse を 1 に変更します。
- [Male/Female]ボタンを読み取り専用にするには、Frame の Enabled プロパティを False に設定します。
- frmStudentBrowser フォームでほかの生徒 ID が選択された場合、その生徒の情報は Personal Data フォームに表示されます。
図 16 コンパイル後の個人データ フォーム
アプリケーションのテスト
保存後、再びアプリケーションのテストを行います。プログラムを実行し、アプリケーションの全機能をテストします。
 レッスン 2:更新用フォームを作成する(ActiveX を使用する Visual Basic チュートリアル) |
 Btrieve API の言語インターフェイス |
|