• ベストアンサー

Access データのないフォームの枠線を表示させたい。

いつもお世話になっています。 Accessで数個のフォームをサブフォームとして1つの大きなフォーム(メインフォーム)に挿入しています。 メインフォーム上では、サブフォームのデータがなくてもサブフォームで設定してある枠線が表示されるのですが、そのメインフォームを印刷すると、データがないサブフォームの枠線は印刷されません。 データがなくても、それぞれの枠線が表示(印刷)されないと印刷物としては不都合があります。 どのように設定すればよいか教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

レポートの場合は詳細のフォーマット時のイベントで必要行数出力するのは出来ますが・・。 フォームでは最後まで罫線を出力するための空レコードを作らないとダメだと思います。 簡単に空データを作る場合は 例えば連番テーブルとしてフィールドは連番とします。 連番にフォーム上で必要な行数分レコードを作ります。 10行であれば 連番フィールド  1  2  3  ・  ・ 10 のようにレコードを作ります。 サブフォームのレコードソースはクエリを使うようにします。 クエリはサブフォームのレコードソースになっているテーブルで抽出などの条件があれば同様に設定しておきます。フィールドを1つ追加し 連番:DCount("キーになるフィールド名","テーブル名","キーになるフィールド名 <=" & [キーになるフィールド名]) とすると連番がクエリ上で振られます。(仮に連番クエリとします) 例えばキーになるフィールドがIDなら 連番: DCount("ID","テーブル名","ID <=" & [ID]) となります。 もう一つクエリを作りテーブル追加で連番をふるクエリと連番テーブルを追加し連番テーブルの連番から連番クエリの連番へドラッグし結合させ結合プロパティで連番テーブルの全レコードと連番クエリの同じフィールドを選びます。連番クエリ.連番に向けた→の結合ラインの表示になります。 これで例えば5行しかなくても10行分のレコードが作成されます。 このクエリをサブフォームのレコードソースにすれば必要行数レコードが出来るので印刷じも罫線は表示されます。