Step4 メイン/サブフォームの作成

 家計簿のデータを入力・編集できるサブフォームと年月度別に切り替え可能なボタン、合計や残高を表示
 するテキストボックス等を配置したメインフォームを作成します。

メイン/サブフォームの作成手順

 (1)サブフォームの作成
  「家計簿」テーブルをレコードソースとした入力・編集フォームをデータシートで表示するフォームを作成
  します。

 (2)メインフォームの作成
   年月度切替等各種コマンドボタンを貼り付けた単票フォームを作成します。

 (3)メイン/サブフォームの連結
   メインフォームにサブフォームを配置します。

 (4)フォームの加工
   メインフォームに必要なオブジェクトを追加し、年月度でサブフォームの内容が変わる様に設定します。


 (1)サブフォームの作成 

1) サブフォームの基になるクエリの作成
  最終的にメインフォームと連結する時には抽出条件を設定しますが、必要フィールドを取り込む
   ために「家計簿」テーブルの全フィールドを対象としたクエリを作成します。

2) [作成]タブの[クエリ]グループから<クエリデザイン>ボタンをクリックします。

3) テーブルの表示ダイアログボックスが表示されたら家計簿を選択し<追加(A)>ボタンをクリック
   します。

4) クエリウィンドウ家計簿が表示しますので<閉じる(C)>ボタンをクリックします。

5) 「家計簿」テーブルのすべてのフィールドを追加します。

 


6) {F12}キーでクエリに名前を付けて保存します。

     クエリ名:Q_家計簿

7) クエリウィンドウを閉じます。

8) フォームの新規作成
  作成した「Q_家計簿」を基にサブフォームとなる明細行を表形式で作成します。

  ナビゲーションウィンドウの「Q_家計簿」クエリを選択しておき、[作成]タブの[フォーム]グループ
  から<フォームウィザード>ボタンをクリックします。

9) フォームウィザードの画面では[選択可能なフィールド]か次のフィールドを[選択したフィールド]に
  移動します。

  日 費目ID 明細 収入 支出 残金

 [次へ]ボタンをクリックします。

10) フォームのレイアウトは「表形式」で[次へ]ボタンをクリックします。
  
11) フォーム名を「F_家計簿Sub」とし、「フォームのデザインを編集する」にチェックを入れ[完了]
      ボタンをクリックします。

12) フォームのデザインビューが表示されます。
      自動的に付加されたラベル ”F_家計簿Sub” は削除しておきます。
      次の通りフィールドコントロールのサイズ変更やレイアウト配置をおこないます。

 

13)テキストボックスのプロパティを以下の様に設定します。

       名前 ・・・・・・・・・・・・・ 日
       コントロールソース ・・・・・・・・ 日
       書式 ・・・・・・・・・・・・・ #
       IME入力モード ・・・・・ 使用不可
       入力規則 ・・・・・・・・・ >0 And <=Day(DateSerial([年],[月]+1,0))
       エラーメッセージ ・・・・・・・・ 日付を確認してください。

14) 費目IDテキストボックスをコンボボックスに変更します。
   費目IDを選択し右ボタンクリックで[コントロールの種類の変更(H)]をクリックします。
   サブメニューの中からコンボボックスを選択します。
   これで費目IDがコンボボックスに変更されました。再度右クリックでプロパティを選択してプロパテ
   ィシートを表示し以下の通り設定します。

       名前 ・・・・・・・・・・・・・・・ 費目ID
       コントロールソース ・・・・・・・・・・ 費目ID
       値集合タイプ ・・・・・・・・・ テーブル/クエリー
       値集合ソース ・・・・・・・・・・ 費目マスタ
       列数 ・・・・・・・・・・・・・・・ 2
       列見出し ・・・・・・・・・・・ いいえ
       列幅 ・・・・・・・・・・・・・・・ 0cm;2cm
       連結列 ・・・・・・・・・・・・・ 1
       リスト行数 ・・・・・・・・・・・・ 26
       リスト幅 ・・・・・・・・・・・・・・ 自動
       入力チェック ・・・・・・・・・・・ はい
       自動拡張 ・・・・・・・・・・・ はい
       

15) 明細 テキストボックスの IME入力モード プロパティを ひらがな にします。

16) 収入 支出 残金 テキストボックスの 書式 プロパティを #,### にします。

17) 残金 テキストボックスの 使用可能 プロパティを いいえ   編集ロック プロパティを
   はい に設定します。

  設定が済んだら フォームフッター セクションの領域を下に広げておきます。

18) フォームフッターセクションに[収入計][支出計][累残金]の3テキストボックスを配置します。
  ツールバーのテキストボックスアイコンをクリックし任意の場所でクリックすると簡単に作成で
  きます。
  自動的に付加されたラベルは削除しておきます。
  3つのテキストボックスプロパティを次の通り設定します。

      テキストボックス:1個目     2個目     3個目
         名前:収入計     支出計     累残金
      コントロールソース:=Sum([収入])  =Sum([支出])  =Last([残金])
         書式:#,##0     #,##0      #,##0

 

19) フィールドの既定値をメインフォームの「年度」、「月度」とします。
   [デザイン]タブの[ツール]グループから<既存のフィールドの追加>ボタンをクリックします。
   [フィールドリスト]の中から をドラッグして詳細セクションの中にドロップします。
   自動的に付加されたラベルは削除して「年」テキストボックスのサイズを小さく調整します。
  
このテキストボックスのプロパティを次の通り設定します。

       既定値・・・・・・・・・・・・・・・ =[Forms]![F_家計簿]![年度]
       可視・・・・・・・・・・・・・・・・・ いいえ

20) 同様に[フィールドリスト]の中から をドラッグして詳細セクションの中にドロップします。
   自動的に付加されたラベルは削除して「月」テキストボックスのサイズを小さく調整します。
  
このテキストボックスのプロパティを次の通り設定します。

       既定値・・・・・・・・・・・・・・・ =[Forms]![F_家計簿]![月度]
       可視・・・・・・・・・・・・・・・・・ いいえ

19) {F12}キーでフォームに名前を付けて保存します。

     フォーム名:F_家計簿Sub

20) フォームを閉じます。

 (2)メインフォームの作成

1) [作成]タブの[フォーム]グループから<フォームデザイン>ボタンをクリックします。

2) フォームのデザインビューが表示されます。

 プロパティを以下の様に設定します。

       標題 ・・・・・・・・・・・・・ 家計簿
       スクロールバー ・・・・・・・・・ なし
       レコードセレクタ ・・・・・・・・ いいえ
       移動ボタン ・・・・・・・・・ いいえ

4) 年度テキストボックスを作成します。
  [デザイン]タブの[コントロール]グループからテキストボックスアイコンをポイントし、任意の場所
  をクリックします。ラベルが自動的に付加されます。

  このラベルのプロパティを設定します。

       標題 ・・・・・・・・・・・・・ 年度
       立体表示 ・・・・・・・・・ くぼみ
       文字配置 ・・・・・・・・・ 中央

  次にテキストボックスのプロパティを変更します。

       名前 ・・・・・・・・・・・・・ 年度
       書式 ・・・・・・・・・・・・・ #
       既定値 ・・・・・・・・・・・ =Year(Date())
       使用可能 ・・・・・・・・・ いいえ
       編集ロック ・・・・・・・・・・ はい
       フォント太さ ・・・・・・・・・ 太字
       文字配置 ・・・・・・・・・ 中央

5) ラベル枠を広げ年度テキストボックスがラベルの中に入り込む様に配置します。

6) 年度コマンドボタンを作成します。
  [デザイン]タブの[コントロール]グループから<ボタン>アイコンをポイントし、詳細セクションの
  任意の場所をクリックします。

  ピクチャプロパティ欄の右横[・・・]をクリックしてピクチャビルダーを起動します。
  選択可能なピクチャでは前へを選択し<OK>ボタンをクリックします。
  プロパティシートを以下の様に設定します。

       名前 ・・・・・・・・・・・・・ 年度_Down
       標題 ・・・・・・・・・・・・・ 年度戻し
       幅 ・・・・・・・・・・・・・・・ 0.497cm
       高さ ・・・・・・・・・・・・・ 0.508cm

  同じ様に年度コマンドボタンをもう1個作成します。
  ピクチャプロパティ欄の右横[・・・]をクリックしてピクチャビルダを起動します。
  選択可能なピクチャでは次へを選択し<OK>ボタンをクリックします。
  プロパティシートを以下の様に設定します。

       名前 ・・・・・・・・・・・・・ 年度_Up
       標題 ・・・・・・・・・・・・・ 年度送り
       幅 ・・・・・・・・・・・・・・・ 0.497cm
       高さ ・・・・・・・・・・・・・ 0.508cm

  作成した年度コマンドボタンを年度テキストボックスの左右に配置します。  

 7) 次に月度オプショングループを作成します。
  [デザイン]タブの[コントロール]グループから<オプショングループボタン>アイコンを選択し、
  詳細セクションの任意の場所をクリックします。

  オプショングループ゚が作成されますのでプロパティを次の通り設定します。

       名前 ・・・・・・・・・・・・・ 月度
       既定値 ・・・・・・・・・・・ =Month(Date())
       立体表示 ・・・・・・・・・ くぼみ

  ラベルの標題プロパティを「月度:」に設定します。

8) 月度トグルボタンを作成します。
  ツールボックスよりトグルボタンアイコンをポイントし月度オプショングループの中に配置します。
  このトグルボタンを12個作成します。
  作成した12個のトグルボタンプロパティを以下の様に設定しておきます。

       標題 ・・・・・・・・・・・・・ 1〜12
       オプション値 ・・・・・・・・・ 1〜12
       幅 ・・・・・・・・・・・・・・・ 0.7cm
       高さ ・・・・・・・・・・・・・ 0.619cm
       フォント名 ・・・・・・・・・・・ Ms Sans Serif
       フォントサイズ ・・・・・・・・・ 10

 12個のトグルボタンを水平に並べます。

9)フォームウィンドウ右上横の閉じるボタン[×]をクリックします。

     'フォーム1'フォームの変更を保存しますか?

  メッセージボックスが表示されますので<はい(Y)>ボタンをクリックします。
  フォームに名前を付けて保存します。

      フォーム名:F_家計簿

  <OK>ボタンをクリックします。

 

 (3)メイン/サブフォームの連結

1) メインフォームとなる「F_家計簿」をデザインビューで開きます。

2) 次にサブフォームを組み込むためにナビゲーションウィンドウとフォームデザインの両方が
  見えるようにウィンドウの位置を調節します。

3) ナビゲーションウィンドウのフォームオブジェクト「F_家計簿Sub」をデザインビューで開いている
 「F_家計簿」にドラッグアンドドロップして組み込みます。


       

 
  F_家計簿Subオブジェクトが挿入されます。
  自動的に付加されたラベルは削除しF_家計簿Subオブジェクトの高さを調整しておきます。

  これでメインフォームにサブフォームが配置されメイン/サブフォームのレイアウトが完成した
  ことになります。

 (4)フォームの加工

メイン/サブフォームのレイアウトが出来たら必要なテキストボックスやコマンドボタンの追加作成に取り組みます。

1) サブフォームのレコードソースを変更します。
 F_家計簿Subをデザインビューで開きます。
 プロパティシートのレコードソース:Q_家計簿を変更しますので右横の[・・・]をクリックしてクエリ
 ビルダーを起動します。 フィールドの抽出条件を設定します。

 
       フィールド  抽出条件
       -------------------------------------------------
        年   =Forms!F_家計簿!年度
        月   =Forms!F_家計簿!月度

 クエリウィンドウを閉じます。
     クエリの変更を保存し、プロパティの設定を更新しますか?
 と表示されますので<はい(Y)>ボタンをクリックします。

  F_家計簿Subの変更を保存してフォームを閉じます。

3) 「F_家計簿」フォームをデザインビューで開きます。
 年度_Upコマンドボタンを右クリックしてサブメニューでイベントのビルドをクリックします。
 ビルダーの選択コードビルダーを選択し<OK>ボタンをクリックします。
 Form_F_家計簿のコードウィンドウが開きます。

 以下の様にコードを記述します。

          Private Sub 年度_Up_Click()
            '年度をひとつ繰り上げます。
            Me.年度 = Me.年度 + 1
            'サブフォームを再クエリします。
            Me.F_家計簿Sub.Requery
          End Sub

 同じ様に年度_Downコマンドボタンも設定します。
 コードは以下の様に記述します。

     Private Sub 年度_Down_Click()
            '年度をひとつ繰り下げます。
             Me.年度 = Me.年度 - 1
             'サブフォームを再クエリします。
             Me.F_家計簿Sub.Requery
     End Sub

4) 月度オプショングループを選択し、プロパティシートの更新後処理の[・・・]イベントビルダを
  クリックします。

  ビルダーの選択コードビルダー゙を選択し<OK>ボタンをクリックします。

  以下の様にコードを記述します。

     Private Sub 月度_AfterUpdate()
      'サブフォームを再クエリ−します。
      Me!F_家計簿Sub.Requery
     End Sub

  コードウィンドウを閉じます。

5) フォームを保存して閉じます。


戻る