OpenOffice/競馬の研究3

  1. データベースの準備
  2. 入力フォームの作成
  3. 入力フォームの作成2
  4. データの入力
  5. データを見る
  6. データを見る2

次は結果データを入力するためのフォームを作成します。

マスタとの結合であればリストボックスが便利ですが、それなりに複雑なテーブル同士の結合となると限界があります。

今回はそれを、サブフォーム機能を利用して実現します。

目次

結果データ

テーブル作成でも触れましたが、1レースに付き、結果データが1個ないし2個ぶら下がるイメージになります。理由は同着があるからです。

クエリーを用意する

フォームを作成する前に、クエリーを一つ準備しておくことにします。だったら最初から用意しとけって突っ込みは無しの方向で。

レース基本データに場所マスタ・天候マスタ・馬場マスタがリンクされた状態をクエリーとして準備します。

こんな感じです。一応ID系も項目として含めておきました。

クエリーにしておくと、ビューへ変換でき、テーブルと似た感覚で利用できるようになります。(テーブルに分類されます)

ウィザードを利用する

さて今回もウィザードを利用してフォームを作成します。

主な選択肢は下記のとおりです。

フォームのフィールドを選択:レースデータビュー
使用可能なフィールドは、レースID・開催日・地名・出走・状態・天候・レース別名、としておきます。
サブフォームの追加にチェック
最初にリレーションを登録しておき、メインフォームにレース基本テーブルを選ぶとここで既存のリレーションとして結果データが選択できるはずですが、今回はビューを用いたので出ません。手動で設定します。
サブフォームのテーブル:結果テーブル
手動で選択します。
サブフォームのフィールドを選択:全て
使用可能なフィールドは全てとしておきます。

:フィールドの結合:レースID同士で結合します。

コントロールの整列:レース基本テーブルはデータ表、結果データはブロックでラベル書きは上
結果データは入力メイン、レース基本は参照メインなのでこうしました。
フォーム名は、結果データの登録としました
まぁ何でもいいです。

説明しやすいように配置を少々変えました。こんな感じです。

まず結果を登録したいレースを選び、次に着順・配当などを入れて登録していくイメージです。

カラムの位置はドラッグ&ドロップで簡単に入れ替えできます。必要なら見やすいように変えましょう。

私はこんな感じになりました。

その他の入力枠

結果IDは、データ表で選択したレースのIDが自動的に入ります。

着順はスピンボタンを付けてもよいかも。

各配当は金額なので3桁ごとの区切りを有効にすると見やすいと思います。

フォーム・ナビゲータ

ここでフォーム・ナビゲータを見てみましょう。。

これがこの入力フォームの構成です。MainFormはレース基本データ、SubFormは結果データ、とデータソース毎にフォームが構成されます。

上位のフォームにより下位のフォームが絞られるイメージです。

SubFormのプロパティを確認してみてください。リンク先・リンク元に、レースIDが入っていると思います。

これはMainFormのレースIDによりSubFormが絞り込まれることを意味します。

他にも、フォーム・ナビゲータを使うとグループ化されたコントロールの中身を簡単に選択できるので便利です。

ナビゲーションバーを付ける

結果入力フォームのデータ操作を簡単にするためにナビゲーションバーを設置しておきます。

フォーム・ナビゲータでSubFormを選択状態にして設置すれば、SubForm配下に設置することが出来ます。


2007-08-25 komina