Tutorials and Guide to Samples (v11)

レッスン 3:2 つのテーブルからのレコードを結合する (ActiveX を使用する Visual Basic チュートリアル)

このレッスンでは、関連する 2 つの異なるテーブルからのレコードを表示する方法を説明します。これは、データベースのプログラミングに便利なテクニックです。このレッスンでは、Student テーブルの生徒の成績情報に関連する Person テーブルからの同一生徒の個人情報を表示します。ここでは、以下の操作を行います。

VAccess コントロールの追加

VAccess コントロールを追加するには

  1. 2 つ目の VAccess コントロールを frmVAccess フォームに配置し、Name プロパティを "VAccess2" のままにします。
  2. 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 コントロールを結合するには

  1. [プロパティ ページ]ダイアログ ボックスの[Join]をクリックし、次のダイアログ ボックスを開きます。
図 12 [Join Controls]ダイアログ ボックス

このダイアログ ボックスに表示される情報には、結合するテーブル(Person)、そのテーブルで選択されているインデックス(0-1D)、結合する VAccess コントロール(VAccess1)、コントロールで使用可能なフィールドが含まれます。
2 つのフィールドを結合するには、各 VAccess コントロールのデータ型が同じ(両方が文字列、両方が整数など)である必要があります。この場合、結合するフィールドの名前も同じ(IDID)ですが、これを同じにする必要はありません。
左側のリスト ボックスは、Person テーブルのインデックス(ID)です。このフィールドのデータは、VAccess1(VAccess コントロール)の ID フィールドと同等のもので、右側のリスト ボックスの 3 番目の項目です。
  1. Fields]リスト内の "ID" をダブルクリックし、VAccess2 コントロールの ID フィールドを、VAccess1 コントロールの ID フィールドに結合します。
    "ID" フィールドが [Equals] 行に表示され、VAccess2 コントロールの ID フィールドに結合されます。図 13 のようなダイアログ ボックスが表示されます。
図 13 2 つの VAccess コントロールの結合フィールド

  1. [OK]をクリックします。[プロパティ ページ]ダイアログ ボックスにある[Join]ボタンの隣のテキスト ボックスに、以下のテキストが表示されます。
    VAccess1:ID
    このテキストは、選択した VAccess2 コントロールが、ID フィールドを通じて VAccess1 コントロールに結合されることを表します。
  2. [OK]をクリックして結合を実行します。

個人データ フォームの追加と表示

ここでは、別のフォームを追加します。このフォームには、生徒の個人データが読み取り専用で表示されます。

結合フィールドのある読み取り専用フォームを作成するには

  1. プロジェクトにフォームを追加します。Name プロパティを "frmPersonalData" に、Caption プロパティを "Personal Data" に変更します。
  2. frmStudentBrowser フォームの[Browse Personal Data]ボタンのクリック時に PersonalData フォームを表示させるには、フォームに移動してボタンをダブルクリックします。Click イベントに以下のコードを入力します。
    frmPersonalData.Show 
    VAccessForm.VAccess2.Refresh 
    
  3. 次に、下図を参考にテキスト ボックスとラベルを追加し、後に追加する[Male/Female]オプション ボタン用のスペースを確保しておきます。
図 14 読み取り専用個人データ フォーム
  1. 各コントロールの VAccessName プロパティを "VAccess2" に設定し、以下の VAFieldName をそれぞれ選択します。
  2. 各テキスト ボックスの[プロパティ ページ]で、[Styles]タブをクリックします。[ReadOnly]チェック ボックスをオンにして[OK]をクリックします。
図 15 テキスト ボックスの読み取り専用設定

  1. [Male/Female]オプション コントロールを配置する Visual Basic Frame コントロールを、フォームに作成します。
  2. 2 つの VAOptionButton をフレーム内に追加し、[Male]および[Female]ラベルを追加します。
  3. 両方のオプション ボタンの[プロパティ ページ]で、VaccessNameに "VAccess2" を、VAFieldName に "Sex" を選択します。
  4. [Female]ボタンに[Male]ボタンと逆の情報を表示するには、VAValueTrue を 0 に、VAValueFalse を 1 に変更します。
  5. [Male/Female]ボタンを読み取り専用にするには、Frame の Enabled プロパティを False に設定します。
    frmStudentBrowser フォームでほかの生徒 ID が選択された場合、その生徒の情報は Personal Data フォームに表示されます。
図 16 コンパイル後の個人データ フォーム

アプリケーションのテスト

保存後、再びアプリケーションのテストを行います。プログラムを実行し、アプリケーションの全機能をテストします。


レッスン 2:更新用フォームを作成する (ActiveX を使用する Visual Basic チュートリアル)

Btrieve API の言語インターフェイス