次は結果データを入力するためのフォームを作成します。
マスタとの結合であればリストボックスが便利ですが、それなりに複雑なテーブル同士の結合となると限界があります。
今回はそれを、サブフォーム機能を利用して実現します。
目次
結果データ
テーブル作成でも触れましたが、1レースに付き、結果データが1個ないし2個ぶら下がるイメージになります。理由は同着があるからです。
クエリーを用意する
フォームを作成する前に、クエリーを一つ準備しておくことにします。だったら最初から用意しとけって突っ込みは無しの方向で。
レース基本データに場所マスタ・天候マスタ・馬場マスタがリンクされた状態をクエリーとして準備します。
こんな感じです。一応ID系も項目として含めておきました。
クエリーにしておくと、ビューへ変換でき、テーブルと似た感覚で利用できるようになります。(テーブルに分類されます)
ウィザードを利用する
さて今回もウィザードを利用してフォームを作成します。
主な選択肢は下記のとおりです。
- フォームのフィールドを選択:レースデータビュー
- 使用可能なフィールドは、レースID・開催日・地名・出走・状態・天候・レース別名、としておきます。
- サブフォームの追加にチェック
- 最初にリレーションを登録しておき、メインフォームにレース基本テーブルを選ぶとここで既存のリレーションとして結果データが選択できるはずですが、今回はビューを用いたので出ません。手動で設定します。
- サブフォームのテーブル:結果テーブル
- 手動で選択します。
- サブフォームのフィールドを選択:全て
- 使用可能なフィールドは全てとしておきます。
:フィールドの結合:レースID同士で結合します。
- コントロールの整列:レース基本テーブルはデータ表、結果データはブロックでラベル書きは上
- 結果データは入力メイン、レース基本は参照メインなのでこうしました。
- フォーム名は、結果データの登録としました
- まぁ何でもいいです。
説明しやすいように配置を少々変えました。こんな感じです。
まず結果を登録したいレースを選び、次に着順・配当などを入れて登録していくイメージです。
カラムの位置はドラッグ&ドロップで簡単に入れ替えできます。必要なら見やすいように変えましょう。
私はこんな感じになりました。
その他の入力枠
結果IDは、データ表で選択したレースのIDが自動的に入ります。
着順はスピンボタンを付けてもよいかも。
各配当は金額なので3桁ごとの区切りを有効にすると見やすいと思います。
フォーム・ナビゲータ
ここでフォーム・ナビゲータを見てみましょう。。
これがこの入力フォームの構成です。MainFormはレース基本データ、SubFormは結果データ、とデータソース毎にフォームが構成されます。
上位のフォームにより下位のフォームが絞られるイメージです。
SubFormのプロパティを確認してみてください。リンク先・リンク元に、レースIDが入っていると思います。
これはMainFormのレースIDによりSubFormが絞り込まれることを意味します。
他にも、フォーム・ナビゲータを使うとグループ化されたコントロールの中身を簡単に選択できるので便利です。
ナビゲーションバーを付ける
結果入力フォームのデータ操作を簡単にするためにナビゲーションバーを設置しておきます。
フォーム・ナビゲータでSubFormを選択状態にして設置すれば、SubForm配下に設置することが出来ます。