(1)使っているテーブルとフォーム
テーブルAとテーブルBがあり、
テーブルA は id, ゴルフ場名 の二つのフィールドからなりたっています。(id は自動割り当て)
テーブルB は id, ゴルフ場名、 コース名、 パー(9ホール分で九つのフィールド) の12のフィールドから成り立っています。(id は自動割り当て)
フォームC は テーブルAを 帳票表示するフォームで、 ゴルフ場名だけ(id は表示しない)が帳票表示されています。このフォームに「詳細ボタン」がつけてあり、フォームからゴルフ場を選択して ボタンを押すと、フォームD が開くようにしてあります。
フォームD は フォームC で選択された ゴルフ場名 を [Forms]![フォームC]![ゴルフ場名] という表現でひっぱてきて
フォームD のヘッダー部分に表示させています。
フォームD には テーブルB から ゴルフ場名が このひっぱてきたゴルフ場名と一致するゴルフ場の コース名、 パー の10(1+9)フィールドを帳票表示しています。
フォームDのヘッダーに ゴルフ場名を 表示させるのは、ヘッダーにおいたテキストボックス T1 のプロパティ データタブで コントロールソースを
=[Forms]![フォームC]![ゴルフ場名]
とすることで表示させています。
フォームDの帳票には フォームDの プロパティで データタブ のフィルターに
[ゴルフ場名]=[Forms]![フォームC]![id]
として、フォームC で選択されたゴルフ場のコース情報だけを帳票表示させています。テーブルB のゴルフ場名 フィールドは テーブルA を参照して作っていますから、ゴルフ場名のフィールドには テーブルA の id が入っています。テーブルAで id=1 ゴルフ場名が「東京国際CC」なら テーブルB の東京国際CCに相当するレコードのゴルフ場名フィールドは 東京国際CC でなく 1 となっています。
(2)質問事項
フォームCで テーブルB にコース情報があるゴルフ場(たとえば 東京国際CC を選択して 詳細ボタンを押すと フォームD が表示され、そのヘッダーのテキストボックス T1 には 東京国際CC と表示され、そのしたに コース情報(コース名、パー)が表示されます。
ところが、テーブルA には存在するが、テーブルBには存在しないゴルフ場をフォームCで選択して 詳細ボタンを押すと、表示されるフォームDのヘッダー部のテキストボックス T1 は空白です。
もちろん 帳票欄には何も表示されませんが、これはテーブルB にデータがないのだから当然。
テキストボックス T1 にゴルフ場名を表示する仕組みは、テーブルB 上のデータの有無に無関係だと思いますが、なぜテーブルBにデータがないときには T1にゴルフ場名が表示されないのでしょうか?
期待としては、テーブルB にデータがなくても テキストボックス T1 には 東京国際CC と表示されると思っていました。
テーブルB にデータがなくても ゴルフ場名を表示させる方法を教えてください。
データがない場合には フォームD で (T1に表示されるべきゴルフ場名)のコースは未登録です、登録しますか? というようなボタンを用意して コースの新規登録に進ませたいので、テーブルBにデータがなくても フォームD でゴルフ場名の参照をしたいのです。
よろしくお願いします。
yamaoyapi