MEのHigeさんのためになる話

4児のパパ臨床工学技士が綴るお役立ち情報、初心者向けMicrosoftAccessについて

第10回 臨床工学技士(ビジネスマンの方も)のためのAccess講座 日付と同期するサブフォームを作ろう


【誰でもできる!】Access講座第10回 日付と同期するサブフォームを作ろう

↑動画でも学べます↑

 

 この記事の前に読みたい

www.me-hige.com

 

サブフォームって?
サブフォームとはフォームの中にあるフォームっていう事です。

f:id:me-hige:20191230221813j:plain
こんなイメージです
失礼しました
こういうやつです 

f:id:me-hige:20191230222148p:plain
これは私が過去に作成した、超過勤務システムの時間外入力画面です
日付を合わせると、その日付の超勤情報が抽出されるという仕組みです
2つテーブルにあるフィールド同士を紐づけて1対多の関係でリレーションを築きフォーム上にデータを表示させることができます。

(今回は親フォームにレコードソース設定がないので、テキストボックスで子フォームをフィルタかける形です)

 

なんだかよくわからない説明ですよね
第9回で作成した続きで説明をしていきます

 今回、何を作るかというと、第9回で作った、ボタンで動く日付テキストボックスに表示されている日付の伝票を抽出して表示するサブフォームを作ります

f:id:me-hige:20191230223642p:plain

まず「Q-伝票」をコピーして貼り付けます

f:id:me-hige:20200102202504p:plain 

f:id:me-hige:20200102202608p:plain

名前を「Q-伝票サブ」にします

f:id:me-hige:20200102202822p:plain

Q-伝票サブ」レコードソースとした、帳票フォームを作ります
フォームデザインで新規フォームを作り、レコードソースを「Q-伝票サブ」にします

f:id:me-hige:20200102204007p:plain

f:id:me-hige:20191230224619p:plain

プロパティシートの「書式」タブを次のように設定します

  • 既定のビュー:帳票フォーム
  • 自動中央寄せ:はい
  • レコードセレクタ:いいえ
  • 移動ボタン:いいえ
  • スクロールバー:垂直
  • コントロールボックス:いいえ

 「日付伝票サブ」と名前を付けて保存します

f:id:me-hige:20191230224222p:plain

 日付伝票サブ上で右クリックし、「フォームヘッダー/フッター」を選択します

f:id:me-hige:20191230225341p:plain


フォームにヘッダーとフッターが表示されます
フィールドリストを表示して、「日にち」「アイテム」「値段」をフォーム上に配置します

f:id:me-hige:20191230225804p:plain

「アイテム」フィールドがどうもリストボックスになっているのでテキストボックスに変更して、
いい感じに並べ替えを行います

f:id:me-hige:20191230230310p:plain

いい感じに並べました

f:id:me-hige:20191230230732p:plain

上書き保存して、「日付伝票サブ」フォームを閉じます

 

続いて「伝票日付」フォームに「日付伝票サブ」を埋め込んでいきます

「伝票日付」フォームをデザインビューで開きます

「伝票日付」フォーム上に「日付伝票サブ」をナビゲーションウインドウからドラッグ&ドロップします

f:id:me-hige:20191230231714j:plain

フォームの中にフォームが表示されます

 

日付伝票サブのレコードソースである「Q-伝票サブ」を開いて、伝票日付フォームで日付でレコード抽出をするようにします

f:id:me-hige:20200102204450p:plain




日にちを追加して、抽出条件上で右クリック→式ビルダーを開き
「伝票日付」→「日付」を選択します

抽出条件には「[Forms]![伝票日付]![日付]」と表示されます

f:id:me-hige:20200102204820p:plain

伝票日付をフォームビューで表示すると

f:id:me-hige:20191230233131p:plain

フォームの中にフォームがあります
実は今の状態では日付設定をしても、サブフォームに該当するレコードを表示してくれません

 

日付伝票フォームをデザインビューで開き、「コードの表示をクリックします

f:id:me-hige:20191230233447p:plain

 

f:id:me-hige:20191230233525p:plain


コードが表示されます

各ボタンのプロシージャ内に

Forms!伝票日付!日付伝票サブ!.Requery

 の1行を追加します

この1文は「伝票日付」フォームの中のサブフォーム「日付伝票サブ」を再表示するという命令文です

f:id:me-hige:20191230234002p:plain

 

テキストボックスの日付を売り上げがあった日に調整すると、サブフォーム内に、伝票が表示されます

f:id:me-hige:20191230234323p:plain


今回はここまでにします
ちょっとずつシステムっぽくなってきました!