2−2
請求明細を記録する
マスターテーブルとサブフォーム
前節では、請求書フォームに請求書番号、日付、顧客名、自社プロフィールを入力し、入力データは請求書番号テーブルに記録できるように作成しました。しかし、まだ請求データについては何も作成していません。
ここでは、請求明細を記録するテーブルを作成し、明細を入力して記録するようにします。また、請求書には合計額、消費税などを表示するようにします。
販売内容を集計したり分析したりするために、請求明細データから、顧客別の集計、月間の集計、商品別の集計、年間の集計といった処理が必要です。したがって、作成しているデータベースでは、請求明細を記録するテーブルがメインのテーブルになります。メインになるテーブルのことを、マスターテーブルといいます。
Part1では、データベースの作成手順としてテーブルを作成してからフォームを作成するというように解説しましたが、現実にはデータベースの構造がはっきりと決まらない設計段階でフォームを作成し、必要なフィールドを考えたり、追加してマスターテーブルを完成させるという順で行うこともあります。
? 請求明細のマスターテーブル
マスターテーブルはデータベースの中心となるテーブルで、データの検索や集計などのさまざまな処理の対象となるデータが記録されます。マスターテーブルは特別な形式をもつものではなく、あるテーブルをマスターテーブルと決めて利用するということです。
1◆請求明細テーブルのフィールドを考える
一般的な(手書きや表計算ソフトで作成した)請求書から、請求明細テーブルの内容を考えます。他のテーブルから参照する項目はマスターテーブルには不要、マスターテーブル固有の項目は省略不可といったことを考えて、必要な項目をそろえるのですが、思いついた項目を並べて、データベースを作成しながら削除・追加して完成させればよいでしょう。
図2.182にこれまで使っていた請求書(Excelのワークシート)を示します。このワークシートが請求書で、明細はアの部分に入力してあります。明細の1行(同図イ)が1レコードになると考えます。必要なフィールドは、
品番 品名 数量 単位 単価 金額
となります。
![]() |

![]()


AC7H206Z
テーブルには主キーが必要です。オートナンバー型のフィールドを1つ追加し、フィールド名を「行番」(行番号の略)にします。記録されるデータの例を表2.7に示します。
表2.7 マスターテーブルに記録されるデータの例
|
行番 |
品番 |
品名 |
数量 |
単位 |
単価 |
金額 |
|
1 |
EX-1 |
エクセル講座 初級編 CD-ROM |
12 |
セット |
\6,800 |
\81,600 |
|
3 |
WD-2 |
ワード講座 活用編 CD-ROM |
5 |
セット |
\3,800 |
\19,000 |
|
4 |
WD-3 |
ワード講座 実践編 CD-ROM |
20 |
セット |
\6,200 |
\124,000 |
|
5 |
EX-2 |
エクセル講座 上級編 CD-ROM |
16 |
セット |
\7,800 |
\124,800 |
|
6 |
EX-3 |
エクセル講座 活用編 CD-ROM |
10 |
セット |
\9,800 |
\98,000 |
|
7 |
EX-2 |
エクセル講座 上級編 CD-ROM |
5 |
セット |
\7,800 |
\39,000 |
|
8 |
EX-3 |
エクセル講座 活用編 CD-ROM |
10 |
セット |
\9,800 |
\98,000 |
|
9 |
WD-3 |
ワード講座 実践編 CD-ROM |
6 |
セット |
\6,200 |
\37,200 |
|
10 |
EX-1 |
エクセル講座 初級編 CD-ROM |
3 |
セット |
\6,800 |
\20,400 |
|
11 |
WD-3 |
ワード講座 実践編 CD-ROM |
12 |
セット |
\6,200 |
\74,400 |
|
|
|
|
|
|
|
|
|
120 |
EX-1 |
エクセル講座 初級編 CD-ROM |
6 |
セット |
\6,800 |
\40,800 |
請求明細テーブルにはすべてのデータが記録されるので、どこからどこまで(何行目〜何行目)が何枚目の請求書の分なのかが判断できません。そこで、記録する情報に請求書番号を追加して表2.8のようにすると、1行目〜5行目までが1枚目の請求書、6行目〜8行目までが2枚目の請求書というように判断できるようになります。
表2.8 請求書番号を追加する
|
行番 |
請求書番号 |
品番 |
品名 |
数量 |
単位 |
単価 |
金額 |
||
|
1 |
|
EX-1 |
エクセル講座 初級編 CD-ROM |
12 |
セット |
\6,800 |
\81,600 |
||
|
3 |
1 |
WD-2 |
ワード講座 活用編 CD-ROM |
5 |
セット |
\3,800 |
\19,000 |
||
|
4 |
1 |
WD-3 |
ワード講座 実践編 CD-ROM |
20 |
セット |
\6,200 |
\124,000 |
||
|
5 |
1 |
EX-2 |
エクセル講座 上級編 CD-ROM |
16 |
セット |
\7,800 |
\124,800 |
||
|
6 |
1 |
EX-3 |
エクセル講座 活用編 CD-ROM |
10 |
セット |
\9,800 |
\98,000 |
||
|
7 |
|
EX-2 |
エクセル講座 上級編 CD-ROM |
5 |
セット |
\7,800 |
\39,000 |
||
|
8 |
2 |
EX-3 |
エクセル講座 活用編 CD-ROM |
10 |
セット |
\9,800 |
\98,000 |
||
|
9 |
2 |
WD-3 |
ワード講座 実践編 CD-ROM |
6 |
セット |
\6,200 |
\37,200 |
||
|
10 |
|
EX-1 |
エクセル講座 初級編 CD-ROM |
3 |
セット |
\6,800 |
\20,400 |
||
|
11 |
3 |
WD-3 |
ワード講座 実践編 CD-ROM |
12 |
セット |
\6,200 |
\74,400 |
||
|
|
|
|
|
|
|
|
|
||
|
120 |
24 |
EX-1 |
エクセル講座 初級編 CD-ROM |
6 |
セット |
\6,800 |
\40,800 |
顧客名や日付のフィールドがないと、顧客名や日付が記録できないのではないかと考える読者もいると思いますが、これらは請求書番号テーブルに記録されているのでマスターテーブルには必要ありません。請求書番号フィールドが両方のテーブルに存在するので、この番号でどのデータがどの顧客に対応しているのかを知ることができます。こうしたテーブルとテーブルにつながりを設定することについては、191ページの「Aサブフォームコントロールを使う」で解説します。
2◆マスターテーブルを作る
請求明細を記録するマスターテーブルを作ります。テーブル作成の詳細はすでにPart1で解説してあるので、フィールドの一覧だけを示しておきます(図2.183)。各フィールドのプロパティは図2.184〜図2.191のようにしてあります。
テキスト型フィールドのプロパティ[フィールドサイズ]は既定値の「50」にしてありますが、目的に合わせたサイズに変更可能です。
テキスト型フィールドでは、[IME入力モード]がオンに自動設定されます。テキスト型を指定したフィールド「品番」は半角文字で入力するので[IME入力モード]をオフにしてあります。
テーブルの[新規作成]のデザインビューで操作してください。

AC7H207Z
AC7H208Z

図__ 行番 AC7H209Z 図__ 請求書番号 AC7H210Z

図__ 品番 AC7H297Z 図__ 品名 AC7H299Z

図__ 数量 AC7H213Z 図__ 単位 AC7H301Z

図__ 単価 AC7H215Z 図__ 金額 AC7H216Z
●テーブルの保存
フィールドを作成したら、テーブルを保存します。テーブル名は「請求明細(マスター)」とします。
>操作
図2.192 @[×]をクリックしてテーブルを閉じる
A テーブルを閉じるときのメッセージで、[はい]をクリック
ア 名前付けて保存ダイアログボックスが表示される
B テーブル名を入力する
C [OK]をクリックする
図2.193 イ テーブルが作成される
![]() |


AC7H217Z
![]() |


AC7H218Z
AC7H219Z

3 作成したテーブルを確認する
作成した請求明細(マスター)テーブルを開いて確認しましょう。図2.194は、作成したテーブルを開いたところです。ウィンドウからはみ出す場合は、スクロールするかウィンドウサイズを大きくして確認しましょう。
図2.195のようにそろっていればOKです。不足しているフィールドや余分なフィールドがあれば、挿入や削除で修正します。
数値や通貨のフィールドには、データが入力されていないときでも値として「0」が表示されます(0を入力してあるのではないことに注意)。
r>操作
@ テーブル[請求明細(マスター)]を開く
ア テーブルが開く


AC7H220Z
図2.194 ウィンドウサイズが小さくてテーブルがはみ出した状態

図2.195 すべてのフィールド一覧 AC7H221Z
キーワード
■マスターテーブル データベースで扱う中心的な存在になるデータを記録するテーブル
Aサブフォームコントロールを使う
マスターテーブルを請求書フォームに組み込んで、請求明細を入力できるようにします。フォームにテキストボックスをフィールドの数だけ挿入してもよいのですが、サブフォームコントロールを使って、一覧形式で表示するようにします。
1 親フォームと子フォーム
請求書フォームに、請求明細を入力するためサブフォームを組み込みます。請求書フォームを親フォーム(図2.196ア)、サブフォームを子フォーム(同図イ)といいます。
図2.196親フォームと子フォーム
●子フォームのレコードソース
親フォームと同様に、子フォームにもレコードソースが必要です。子フォームに表示するのは、請求明細(マスター)テーブルの内容です(表2.9参照)。請求書(マスター)テーブルには複数の請求書のデータが記録されるので、請求書1枚分のデータだけを表示するようにしなければなりません。そのためには、親フォームと子フォームのレコードソースに関連付けを設定します。関連付けをフィールド[請求書番号]で行い、1枚分の請求明細データだけを子フォームに表示する、ということです。
表2.9 請求明細(マスター)テーブル
|
行番 |
請求書番号 |
品番 |
品名 |
数量 |
単位 |
単価 |
金額 |
||
|
1 |
|
EX-1 |
エクセル講座 初級編 CD-ROM |
12 |
セット |
\6,800 |
\81,600 |
||
|
3 |
1 |
WD-2 |
ワード講座 活用編 CD-ROM |
5 |
セット |
\3,800 |
\19,000 |
||
|
4 |
1 |
WD-3 |
ワード講座 実践編 CD-ROM |
20 |
セット |
\6,200 |
\124,000 |
||
|
5 |
1 |
EX-2 |
エクセル講座 上級編 CD-ROM |
16 |
セット |
\7,800 |
\124,800 |
||
|
6 |
1 |
EX-3 |
エクセル講座 活用編 CD-ROM |
10 |
セット |
\9,800 |
\98,000 |
||
|
7 |
2 |
EX-2 |
エクセル講座 上級編 CD-ROM |
5 |
セット |
\7,800 |
\39,000 |
||
|
8 |
2 |
EX-3 |
エクセル講座 活用編 CD-ROM |
10 |
セット |
\9,800 |
\98,000 |
||
|
9 |
2 |
WD-3 |
ワード講座 実践編 CD-ROM |
6 |
セット |
\6,200 |
\37,200 |
||
|
10 |
3 |
EX-1 |
エクセル講座 初級編 CD-ROM |
3 |
セット |
\6,800 |
\20,400 |
||
|
11 |
3 |
WD-3 |
ワード講座 実践編 CD-ROM |
12 |
セット |
\6,200 |
\74,400 |
||
|
|
|
|
|
|
|
|
|
||
|
120 |
24 |
EX-1 |
エクセル講座 初級編 CD-ROM |
6 |
セット |
\6,800 |
\40,800 |
親フォームのレコードソースである請求書番号テーブルに入力された請求書番号をもとに、子フォームのレコードソースである請求明細(マスター)テーブルから同じ請求書番号のデータを抜き出して子フォームに表示させます。そのためには、2つのテーブルをリンクと呼ぶ方法で関連付けることが必要です。(図2.197参照)。
請求書番号テーブル 請求明細(マスター)テーブル

フィールド フィールド
請求書番号 行番
発行日 請求書番号
顧客名 請求書番号で 品番
親フォーム リンクさせる 品名
数量
単位
単価
金額
子フォーム
図2.197 親フォームと子フォームのリンク
親フォームに入力した請求書番号を子フォームに送り、子フォームは受け取った請求書番号のレコードを表示します。なお、「関連付け(リンク)」とあとで解説する「リレーションシップ」とは似ているようですが、異なることなので、混同しないようにしましょう。
関連付け(リンク)一方でデータを修正した結果が、他方にも反映されるような2つのテーブルの結びつき
リレーション 2つのテーブルの共通するフィールドを関連付ける設定
2◆サブフォームを挿入する
ウィザードを使うと、簡単な操作でテーブルの設定ができます。挿入操作を始める前に、ツールボックスの[ウィザード]ボタンが押し込まれていることを確認しておきます(押し込まれていないときはクリックして押し込んだ状態にする)。
●フォームの挿入
ツールボックスの[サブフォーム/サブレポート]を使います。ウィザードを使うので、挿入する前にツールボックスのウィザードボタンが押し込まれた状態にしてから操作します。
>操作
図2.198 請求書フォームをデザインビューで開く
@フォームのサイズを広げて挿入しやすくする
ア[ウィザード]ボタンは押し込まれた状態になっていること
A[サブフォーム/サブレポート]ボタンをクリックして押し込む
図2.199Bフォーム上の適当な位置にドラッグアンドドロップで挿入する

AC7H222Z

AC7H213Z
●テーブルとフィールドの選択
サブフォームを挿入するとウィザードが自動的に起動します。まず、サブフォームに使うテーブルと表示するフィールドを選択します。すべてのフィールドを表示することにしておき、あとの操作で不要なフィールドを非表示にしたり、不足するフィールドを追加したりします。
>操作
図2.200 ウィザードが起動する
@[きぞんのテーブルまたはクエリを使用する]を選択する(◎印を付ける)
A[次へ]をクリックする
図2.201 ウィンドウが切り替わる
B[テーブル/クエリ]欄の[▼]ボタンをクリックして一覧を表示する
図2.202C[テーブル請求明細(マスター)]を選択する
図2.203ア[請求明細(マスター)]のフィールド一覧が表示される
D[>>]ボタンをクリックしてフィールドを右側のウィンドウへ移す
図2.204E[次へ]をクリックする

AC7H224Z AC7H225Z

AC7H226Z AC7H227Z

AC7H228Z
リンクが正しく設定されていてこのまま操作を続けるときは、197ページの「●サブフォームの名前を付けて完了」へ進みます。
●リンクを設定する
次のウィンドウで親フォームと子フォームのリンクを設定します。[設定するリンク]の欄は、次のように表示されます。
[請求書番号でリンクし、請求書番号の各レコードに対し請求明細(マスター……]
[なし]
親フォームのレコードソース「請求書番号テーブル」と子フォームのレコードソース「請求明細(マスター)テーブル」に同じフィールド名が存在するので、リンクが自動的に表示されます。
フィールド名が異なっていたり、同じフィールド名でも使い方が異なっていると、リンクが思ったようにならないことがあります。その場合は、[独自に設定する](図2.205ア)をクリックして◎印を付けて次ページの「●リンクを独自に設定する」の操作を行います。
リンクが正しく設定されていてこのまま操作を続けるときは、197ページの「●サブフォームの名前を付けて完了」へ進みます。
>操作
図2.205@ここをクリックして選択状態にする
A[次へ]をクリックする
表示されている文字が途切れて、目的の内容なのか判断できないときは、次の「リンクを独自に設定する」で操作してください。
AC7H232Z
●リンクを独自に設定する
自動的に設定されるリンクが思ったようにならなかった場合は、自分でリンクを設定します。親フォームのフィールド[請求書番号]と子フォームのフィールド[請求書番号]をリンクさせて使うので、フィールド[請求書番号]を送り側と受け側に設定します。
>操作
図2.206 リンクを独自に設定するウィンドウ
@[フォーム/レポートのフィールド]欄の[▼]ボタンをクリックする
図2.207ア親フォームのフィールド名一覧が表示される
A目的のフィールド名(ここでは[請求書番号])をクリックする
図2.208B[サブフォーム/サブレポートのファイル]欄の[▼]ボタンをクリックする
図2.209C目的のフィールド名をクリックする(ここでは[請求書番号])
図2.210イ内容が目的に合っているかどうかを確認する
D[次へ]をクリックする
設定状況の説明に表示される内容(図2.210イ)が、目的に合っていることを確認します。

AC7H229Z AC7H230Z

AC7H231Z AC7H234Z

AC7H235Z
●サブフォームに名前を付けて完了
最後に、サブフォームに名前を付けます。表示された名前をそのまま使ってもかまいませんが、ここでは「請求明細のサブフォーム」とします。
>操作
図2.211@入力欄をクリックして名前を書き換える
A[完了]をクリックする
図2.212アサブフォームが挿入される
フィールド数などによって調整されたサイズで、フォームが挿入されます。フォームのサイズや位置は、ドラッグして変更することができます。
図2.213イはフォームのサイズを広げて、サブフォームも広げた状態のものです。

AC7H233Z

AC7H230Z
●フォームに挿入したサブフォームのサイズ変更
サブフォームを挿入すると、フィールド数やフィールドサイズなどによりフォームのサイズが自動的に決定されます。サブフォームが選択状態(周囲に■が表示される)になっているとき、■にマウスポインタを合わせてドラッグすると任意のサイズに変更できます。フィールドの表示幅も変更できますが、これについては263ページで解説します。
>操作
図2.220 @■にマウスポインタを合わせる
A横方向にドラッグする
図2.221アマウスポインタを放したときのサイズに変更される
図2.222A■にマウスポインタを合わせ縦方向にドラッグする
図2.223イマウスポインタを放したときのサイズに変更される



AC7H246Z/AC7H245Z

AC7H247Z
![]()




AC7H248Z AC7H249Z

AC7H251Z
3◆仕上がりの状態を確認する
デザインビューで請求書フォームを見ると、サブフォームは白抜きの枠として表示され、サブフォームの内容は表示されません。実際に使用するときの状態は、フォームビューに切り替えると確認できます。
[ビュー]ボタンをクリックして、フォームビューに切り替えます。まだデータを入力していないので、空のサブフォームが表示されます。
>操作
図2.214@[ビュー]ボタンをクリックしてフォームビューに切り替える
図2.215 フォームビューに切り替えた請求書フォーム
アサブフォームがデータシート形式で表示される
イ親フォームのレコードボタン
ウ子フォームのレコードボタン
エ親フォームの請求書番号が子フォームにリンクされている
レコードボタンが2組表示されています。一方は親フォームのレコードソース(請求書番号テーブル)のレコードボタン(図2.215イ)、一方は子フォームのレコードソース(請求明細(マスター)テーブル)のレコードボタン(同図ウ)です。




AC7H238Z
AC7H239Z

●フォームの保存
フォームを閉じるときのメッセージでフォームを保存します。データベースウィンドウに戻ると、[フォーム]タブのウィンドウにサブフォームがフォームの1つとして表示されます。
>操作
図2.216 請求書フォーム
@フォームの[×]ボタンをクリックする
ア保存確認のダイアログボックスが表示される
A[はい]をクリックする
図2.217 データベースウィンドウに戻る
イサブフォームが一覧に追加されている





AC7H241Z

AC7H242Z
4 サブフォームを開く
請求書フォームに組み込んだサブフォームの設定やスタイルを変更するために、データベースウィンドウに表示されているサブフォーム(請求明細のサブフォーム)をデザインビューで開いて操作します。
>操作
図2.218 データベースウィンドウの[フォーム]タブの画面
@サブフォーム(請求明細のサブフォーム)を選択する
A[デザイン]をクリックする
図2.219 デザインビューで開く
アフォーム形式で表示される
B[×]ボタンをクリックして閉じる

AC7H243Z

AC7H244Z
デザインビューで開くとフォーム形式(図2.219)で表示されます。表示形式は、プロパティ[既定のビュー]や[ビュー設定]で変更することができます。
●フォームに挿入したサブフォームのサイズ変更
上へ移動
キーワード
■サブフォームコントロール 他のフォームの中にフォームを表示させるためのコントロール。もとのフォームと区別するために、挿入したほうをサブフォームという
■子フォーム/親フォーム フォームに挿入したサブフォームのことを子フォーム、フォームが挿入されたもとのフォームを親フォームと呼ぶ
■リンク 親フォームと子フォームのつながりをリンクという。親フォームで指定した条件で子フォームにデータを抽出するために使用する
B請求明細のデータを入力する
サブフォームを使って請求明細のデータを入力してみましょう。これまでに作成したフォームでは、請求明細(マスター)テーブルをサブフォームによって表示しているので、品番を入力しても品名が自動表示されません。単にデータをテーブルに記録する窓口としてしか、サブフォームは機能しません。品名や単価などを自動的に表示する方法はPart3で解説します。ここでは、入力したデータが請求書番号で表示されることを理解しておきましょう。
1◆請求明細を入力する
請求書フォームをフォームビューで開いて操作します。1枚目の請求書、2枚目の請求書、……と順番にサンプルデータを入力し、さらに入力済みの請求書を表示したときに正しく明細が表示されたことを確認します。
次の操作では、商品テーブルに入力してある品番を入力します。
>操作
図2.225 データベースウィンドウのフォーム一覧
@請求書フォームを選択して[開く]をクリックする
図2.226 請求書フォームがフォームビューで開く
A[Tab]キーを数回押す、またはマウスをクリックして[品番]の欄を入力状態にする
図2.227B適当な値を入力する(入力を繰り返す)
[Enter]キーを数回押して次のレコードに進む
ア請求書番号はリンクの設定で自動入力される
図2.228 請求書1枚目の入力内容
上の操作では、[Enter]キーを押して請求明細の次の行にカーソルを移動しましたが、サブフォームのレコードボタンをクリックして進めることもできます。
なお、自動入力される請求書番号は書き換えてはいけません。たとえば、請求書番号を「1」から「2」に書き換えると、1枚目の請求明細ではなく2枚目の請求明細になってしまうからです。うっかり書き換えてしまうことのないよう、変更してはいけないフィールドは非表示にしたり、変更できなくしたりする(編集ロック→132ページの「6 データの書き換えを禁止する」参照)ことが必要です。プロパティ[編集ロック]については、209ページの「3 請求書番号を保護する」でも解説します。
以下の図__「商品テーブル」はデータ入力の参考用です。

図___ 商品テーブル AC7H254Z

AC7H252Z

AC7H261Z

AC7H260Z
図大 AC7H262Z
2◆次の請求書を表示する
1枚目から2枚目へと、次の請求書を表示するには、親フォームのレコードボタンをクリックします。1枚目を入力して2枚目に進むと、1枚目で入力した請求明細は消えて、2枚目の請求明細の一覧が表示されます。
>操作
図2.229@レコードボタンをクリックする
図2.230 2枚目の請求書に切り替わる
ア請求書番号に「2」が自動入力される
図2.231A請求明細を入力する
図2.232B3枚目を入力する
C[×]をクリックして閉じる
同じように操作して、3枚目の請求明細(図2.232)まで入力しておいてください。データを入力したら、親フォームのレコードボタン[]をクリックして2枚目や1枚目の請求書に表示を戻したときに、各請求明細が入力したとおりに表示されていることを確かめます。
請求明細の行番はすべて請求明細の入力順に振られる連番で、請求書ごとに1から始まる番号ではありません。このようすは、請求明細(マスター)テーブルを開くと確認できます。

AC7H312Z ↑ 1枚目(1レコード)

AC7H263Z ↑ 2枚目(2レコード)

AC7H264Z


AC7H265Z ↑ 3枚目(3レコード)
●テーブルのデータを確認
フォームを使って入力したデータが請求明細(マスター)テーブルに正しく登録されているのかどうかを確かめておきましょう。請求書フォームを閉じて、以下の操作でテーブルを開きます。
>操作
図2.233@[テーブル]を選択する
A請求明細(マスター)を開く
図2.234アデータの登録されたテーブルが開く
B[×]ボタンをクリックして閉じる

AC7H266Z

AC7H267Z
3 請求書番号を保護する
自動的にデータが入力されるフィールド(このフォームではオートナンバーを指定した「請求書番号」フィールド)が入力ミスによって書き換えられないように、フィールドを編集ロックします。
請求書のサブフォームをデザインビューで開いて操作します。
>操作
図2.235@請求書のサブフォームを選択して[デザイン]をクリックする
図2.236 請求書のサブフォームがデザインビューで開く
A設定するコントロールのプロパティウィンドウを表示する
Bプロパティ[編集ロック]欄の[▼]ボタンをクリックする
図2.237C[はい]をクリックする
図2.238ア編集ロックが設定される
操作終了後は、フォームを閉じておきます。これで、サブフォームに表示される請求書番号は書き換えられなくなります。

AC7H268Z

AC7H269Z

AC7H270Z AC7H271Z
キーワード
■プロパティ[編集ロック] テキストボックスの内容を書き換えられないようにする
C親フォームと子フォームのスタイル
サブフォームのサイズや位置は、他のコントロールと同じように変更できます。ここでは、フォームの表示スタイルなどに関するプロパティの設定を解説します。
1◆親フォーム内のレイアウト
サブフォームはコントロールの1種なので、サイズや位置はドラッグ操作で変更できます。また、複数のコントロールを同時に選択して移動することもできます。複数のコントロールを選択するには、ツールボックスの[オブジェクトの選択]ボタンを押し込んだ状態で、コントロールを囲むようにドラッグします。コントロールが接近していて操作しにくければ、[Shift]キーを押しながら各コントロールを順次クリックします。
>操作
図2.239@[Shift]キーを押しながらコントロールを次々とクリックする
図2.240A選択状態のコントロールにマウスポインタを合わせる(ポインタが手の形に変わる)
図2.241Bドラッグで移動して、目的の位置でマウスボタンを放す
[Ctrl]キーを押しながら矢印キーを押しても、選択状態になっているコントロールを移動することができます。マウスで操作しにくいときに便利な方法です。


AC7H272Z


AC7H273Z


AC7H274Z
他のコントロールも適切な位置に移動して、親フォーム全体のレイアウトを図2.242のように整えます。なお、自動的に挿入されたサブフォームのキャプション(ラベルコントロール)を「請求明細のサブフォーム」から「請求明細」に変更してあります。(横幅を少し広げて、各コントロールを右に寄せている)

AC7H276Z
2◆サブフォームの表示スタイル
挿入したばかりのサブフォームは、複数のレコードを一覧形式で表示するデータシート形式になっています。サブフォームに1つのレコードだけ表示するフォーム形式にするには、サブフォームのプロパティ[既定のビュー]を[単票フォーム]または[帳票フォーム]に変更します。
サブフォームをデザインビューで開いて操作します。デザインビューでプロパティウィンドウが表示されていないときは、フォーム左上角の[■]をダブルクリックするか、右クリックしてショートカットメニューの[プロパティ]を選択します。
>操作
図2.243 データベースウィンドウのフォーム一覧
@サブフォームを選択して[デザイン]をクリックする
図2.224アサブフォームがデザインビューで開く
A[■]をダブルクリックしてフォームのプロパティ一覧を表示する
B[書式]タブをクリックしてこの一覧に切り替える
C[既定のビュー]欄の[▼]ボタンをクリックして一覧を表示する
イ[既定のビュー]欄をダブルクリックして変更することもできる
図2.245D目的のビューをクリックする
図2.246ウビューが設定される

AC7H277Z
![]()


AC7H278Z AC7H279Z

AC7H280Z AC7H281Z
●サブフォームのビューの種類
サブフォームのビューには、データシートビュー、単票フォームビュー、帳票フォームビューの3種類があります。図2.247〜図2.249に、各ビュー表示のようすを示しておきます。なお、単票と帳票フォームでは、同じ表示のようですが、データ表示のスクロール数が異なります(スクロールバーに注目)。
単票フォームのように1行分しか表示されませんが、帳票フォームは同じ請求書番号のデータをスクロールして表示させることができます。
表示を確認するときは、サブフォームを閉じてから請求書フォームを開きます。サブフォームを閉じてからでないと、親フォームを開くことはできません。

AC7H282Z AC7H283Z
![]()
![]()

AC7H285Z AC7H284Z
![]()
![]()

AC7H286Z AC7H277Z
3◆使用時に表示スタイルを変更する
サブフォームのプロパティ[ビュー設定]が[データシート]に設定されているときは(図2.246)、サブフォームのフィールド名の欄を右クリックして表示されるショートカットメニューで、表示スタイルを切り替えることができます。
>操作
図2.250アデータシート形式のサブフォーム
@項目名の欄で右クリックしてショートカットメニューを表示する
A[サブフォーム]→[フォーム]をクリックする
図2.251イ単票フォーム形式に変わる
なお、この操作の結果は保存されないので、次回にフォームを開いたときは[既定のビュー]で表示されます。
単票フォームのときに、項目名の欄(図2.252ウ)で右クリックして同じように操作すれば、もとのデータシート形式に戻せます。確認後は、もとのデータシート形式に戻しておいてください。


AC7H288Z


AC7H289Z
r>操作「データシート形式」
図___ア データシート形式のサブフォーム
@ フォーム内を右クリックしてショートカットメニューを表示する
A[サブフォーム]→[データシート]をクリックする
◆ データシート形式に変わる
![]() |



AC7H291Z
キーワード
■プロパティ[既定のビュー] サブフォームの表示形式の既定値を設定する(データシート形式、単票フォーム形式、帳票フォーム形式のいずれか)
■プロパティ[ビュー設定] サブフォームの表示形式を設定する