Access 従業員マスタ「従業員リスト」フォーム
デザインビュー
従業員リストの概要
- メインメニューから「従業員マスタ」をクリックすると「従業員リスト」が開く。但し、個人情報保護のため権限がある者以外は従業員マスタが開けないようにする(ログイン時に制限する)権限があるパソコンでも2重のセキュリティで「従業員マスタ」ボタンを押した際に再度パスワード要求する
- 「従業員リスト」の表示は「既存従業員」と「退職者」が選択でき、リストが切り替わる
- 「従業員リスト」をスクロールして該当の従業員を探せる。リストに表示される情報は限定情報なので「詳細」ボタンで詳細情報が確認できる
- 「従業員検索」コンボボックスを設置して該当の従業員を検索できる
- 「従業員数」「男性数」「女性数」「平均年齢」コントロールを設置する
- フォームフッターに「新規登録」「編集」「元に戻す」「「閉じる」ボタンを設置する
- 「新規登録」ボタンで新規登録フォームに切り替わる
- 「編集」ボタンで登録済みの従業員データを編集する編集フォームに切り替わる
- 「元に戻す」ボタンで検索された「従業員リスト」をデフォルトに戻す
- 「閉じる」ボタンで「従業員リスト」フォームを閉じる
「従業員リスト」サブフォームの設定
サブフォームの元になるクエリを作成する
選択クエリの作成手順
→「作成」
→「クエリデザイン」クリック
→「テーブルの追加」クリック
→「01従業員M」テーブルを選択(ダブルクリック)
→「01従業員M」の全てのフィールドをデザイングリッドに追加する
→フィールドの変更や必要なフィールドを作成して追加する(下記紹介)
→クエリ名「Q01従業員リストサブ」としてクエリを保存
変更・追加するフィールド
●フィールドの変更:「従業員コード」に抽出条件を設定する
抽出条件:Like “*” & [Forms]![F01従業員リスト]![検索] & “*”
並び替え:昇順
簡単解説
「検索」コンボボックスに入力された従業員コードのデータを抽出するが「選択」オプショングループで「既存従業員」と「退職者」のグループ分けが必要なためワイルドカードにして「検索」コンボボックスが未入力でもリスト表示させるため。リスト表示の並び替えを従業員コードの昇順とする
●「男女」フィールドを追加
フィールドの追加:男女: IIf([性別]=1,”男”,”女”)
簡単解説
「性別」フィールドが1ならば 男性 と表示して 2ならば 女性と表示する
●「住所」フィールドを追加
フィールドの追加:住所: [住所1] & ” ” & [住所2]
簡単解説
「住所1」フィールドと「住所2」フィールドを分割しないで合体させて表示させる。間に半角スペースを入れる。
●「年齢」フィールドを追加
フィールドの追加:年齢: IIf(Format(Date(),”mmdd”)<Format([生年月日],”mmdd”),DateDiff(“yyyy”,[生年月日],Date())-1,DateDiff(“yyyy”,[生年月日],Date()))
簡単解説
1月1日から起算して生年月日と本日を比較する。本日が生年月日より前なら-1(歳)にする。生年月日より後ならDateDiffの値にする。
●「選択」フィールドを追加
フィールドの変更:追加した「選択」フィールドに抽出条件を設定
フィールドの追加:選択: IIf(IsNull([退職日]),1,2)
抽出条件:[Forms]![F01従業員リスト]![選択]
簡単解説
もし「退職日」フィールドが空欄なら1を返す。空欄で無ければ2を返す。
「F01従業員リスト」フォームの「選択」オプショングループを抽出条件とする。
クエリの保存
クエリが完成したら保存する。クエリ名は「Q01従業員リストサブ」とした
●「Q01従業員リストサブ」クエリを元にサブフォームを作成する
「フォームウィザード」を使ってサブフォームを作成する
サブフォームを作成する手順
→「作成」クリック
→「フォームウィザード」ダブルクリックでウィザードを起動
→「テーブル/クエリ」から「Q01従業員リストサブ」を選択
→「選択可能なフィールド」からサブフォームで表示させるフィールドを選択
→「次へ」クリック
→「表形式」を選択
→「次へ」クリック
→「フォーム名を指定してください」は「F01従業員リストサブ」とした
→フォームのデザインを編集するを選択
→「完了」をクリック
→フォームが作成される(デザインモード)
→情報が多すぎるのでリストから排除するフィールドを選択して削除する
→「Q01従業員リストサブ」ラベルも不要なので削除する
→フィールドを排除しても横長フォームになってしまうので今回はコントロールを2段にしたサブフォームを作成した
→「詳細」ボタンを詳細部の適所に設置(ボタン名は「明細」※詳細部の詳細名と被るので名前を詳細にできない)
→「新規登録」「編集」「元に戻す」「閉じる」ボタンをフォームフッターに設置
完成形
フォームのプロパティ設定
左上端の ■(フォームセレクター)をクリックするとフォーム全体のプロパティ設定モードになる
変更するプロパティ
標題 | 従業員リストサブ |
移動ボタン | いいえ |
コントロールボックス | いいえ |
閉じるボタン | いいえ |
追加の許可 | いいえ |
レコード移動時 | (マクロの設定)※あとに説明 |
「詳細」部のプロパティ設定
変更するプロパティ
背景色 | 背景 1, 暗め 5% |
台変えの背景色 | 背景 1 |
変更する理由:デフォルトではリストの行は白色と薄灰色のゼブラ表示されるがデータが何もない時は白色で表示される。白色がまぶしく見えるので薄灰色に表示させたい
各コントロールのプロパティ設定
変更するプロパティ
幅※1 | ( ) |
高さ | 0.6cm |
上位置※1 | ( ) |
左位置※1 | ( ) |
背景色※2 | 背景 1, 暗め 5% |
スクロールバー※3 | なし |
上余白 | 0.05cm |
フォント名 | メイリオ |
フォントサイズ | 9 |
編集ロック | はい |
Enterキー入力時動作※3 | 規定 |
※1 ( )は設置するコントロールの位置により変動する
※2 「詳細」部の設定と連動してデフォルトを薄灰色にしておく
※3 フォームウイザードを使用して作成したフォームなので自動的に設定変更されるため元に戻す
「件数」コントロールの設定
フォームのプロパティで「コントロールボックス」を非表示(いいえ)にしているので フォームに表示される件数をコントロールに設置して表示させる。サブフォームにはレコードソースになる件数を格納させておく。「人数」としてサブフォームに設置した「件数」データを利用する
→フォームデザイン
→テキストボックス
→詳細部の適所に配置
→ラベルは不要なので削除
→名前を「件数」とした
→幅・高さ・フォントなどの書式を整えてる
→プロパティシート→可視を いいえ にする
→プロパティシート→コントロールソースを =Count([ID]) とする
カレント行の色を変える設定
行間を移動してもカレント行の背景色が変わり見やすくなる
設定方法手順
→「フォームヘッダー」部にテキストボックスを設置
(連結するラベルは削除。コントロールソースは空欄、プロパティの名前:行色、可視:いいえ(非表示)とする)
→「詳細」部の「ID」コントロールのプロパティは 可視:いいえ(非表示)とする)
→「詳細」部でカレント行の背景色の背景色を変えたいコントロールを全て選択する
→書式→条件付き書式→新しいルール→「フォーカスのあるフィールド」を選択→背景色を好きな色に指定→OKボタン
→続けて
書式→条件付き書式→新しいルール→「式」を選択→[行色]=[ID] と入力→背景色を好きな色に指定→OKボタン
→条件付き書式の設定完了
マクロの設定
多様するマクロなので「99共通」マクロに「行色」名でサブマクロを作成(保存する)
サブマクロ:行色 | ||
値の代入 | ||
アイテム= | [行色] | |
式= | [ID] | |
マクロの中止 |
マクロの簡単解説
「ID」コントロールの値を「行色」コントロールにコピーする(同じ値になる)
マクロの設置
・作成したマクロは上書き保存する
・「F01従業員リスト」フォームの プロパティシート→イベント→レコード移動時→マクロ「99共通.行色」
「従業員リスト」フォームの設定
フォームの作成手順
→用意してある「テンプレポップアップ」フォームを利用する
→「テンプレポップアップ」フォームをコピペする。「F01従業員リスト」名で保存する
→「F01従業員リスト」フォームをデザインビューで開く
→フォームヘッダー部分を広げる。フォームデザイン→タイトルをクリック→空のタイトルスペースが表示される
→タイトルを「従業員リスト」としてプロパティシート→書式で幅・高さ・フォントなどを整える
→フォームヘッダー部分にオプショングループを設置する(「選択」名で「既存従業員」「退職者」のオプションボタンを配置)
→フォームヘッダー部分に「人数」「男性」「女性」「平均年齢」のコントロールを配置する
→詳細部に「従業員検索」するコンボボックスを配置する
→「従業員検索」の検索結果を元に戻す「再検索」ボタンを設置する
→詳細部に「F01従業員リストサブ」サブフォームを設置する
→「再検索」「詳細」「新規登録」「編集」「元に戻す」「閉じる」ボタンにマクロを設置する
→概略完成(冒頭のデザインビュー)
フォームのプロパティ設定
左上端の ■(フォームセレクター)をクリックするとフォーム全体のプロパティ設定モードになる
主なプロパティ設定
ポップアップ | はい |
作業ウインドウ固定 | はい |
自動中央寄せ | はい |
サイズ自動修正 | はい |
レコードセレクタ | いいえ |
移動ボタン | いいえ |
コントロールボックス | いいえ |
閉じるボタン | いいえ |
●「選択」オプショングループの設定
オプショングループの設置
フォームデザイン→リボンよりオプショングループをクリック→フォームデザインの詳細部にオプショングループを設置
オプショングループウィザードで「既存従業員」と「退職者」グループを作成する→規定値を1とする(既存従業員)
他のコントロールにあわせて幅・高さなどの書式を整える
機能
・「従業員検索」コントロールと連動して選択されたグループで「検索」コンボボックスに表示されるリストが決まる
・「F01従業員リストサブ」サブフォームと連動して選択されたグループでサブフォームに表示されるリストが切り替わる
マクロの作成
オプショングループで選択された値で「従業員検索」「F01従業員リストサブ」に表示されるリストが切り替わる
よく使うマクロなので「99共通」マクロに「再クエリ」名でサブマクロを作成
サブマクロ:再クエリ | ||
再クエリ | ||
コントロール名 | ||
マクロの中止 | ||
サブマクロの最後 |
マクロの簡単解説
「再クエリ」のコントロール名は指定せず、フォームに設置されている全部のクエリを最新状態に更新する(「従業員検索」「F01従業員リストサブ」にはクエリが設定されている)
マクロの設置
・作成したマクロは上書き保存する
・「選択」オプショングループに プロパティシート→イベント→更新後処理→マクロ「99共通.再クエリ」
●「人数」「男性」「女性」「平均年齢」コントロールの設定
各プロパティシート→コントロールソースに式を設定する
「人数」のコントロールソース
=[Forms]![F01従業員リスト]![F01従業員リストサブ]![件数]
式の簡単解説
サブフォームで計算した「件数」の値を参照して表示する。書式設定で値には 人 テキストを付随させる(&” 人”)
「男性」のコントロールソース
=DCount(“性別”,”Q01従業員リストサブ”,”性別=1″)
式の簡単解説
サブフォームのレコードソース「Q01従業員リストサブ」クエリを参照して「性別」フィールド=1(男性)の値をカウントする。書式設定で値には 人 テキストを付随させる(&¥人)
「女性」のコントロールソース
=DCount(“性別”,”Q01従業員リストサブ”,”性別=2″)
式の簡単解説
サブフォームのレコードソース「Q01従業員リストサブ」クエリを参照して「性別」フィールド=2(女性)の値をカウントする。書式設定で値には 人 テキストを付随させる(&¥人)
「平均年齢」のコントロールソース
=DAvg(“年齢”,”Q01従業員リストサブ”)
式の簡単解説
サブフォームのレコードソース「Q01従業員リストサブ」クエリを参照して「年齢」の値の平均を計算する。書式設定で値には 歳 テキストを付随させる(#,##0¥歳)。小数点以下表示桁数を1
●「検索」(従業員検索)コンボボックスの設定
「検索」コントロールボックスに格納されているデータは「従業員コード」になる
既存コンボボックスの利用
「F01従業員編集」フォームで作成した「検索」コンボボックスをコピーして適所に配置することを推奨
<参考>
従業員マスタ「編集」フォームの作成 デザインビュー 「F01従業員新規」フォームをコピペしてフォーム名を「F01従業員編集」とした。 コピペ後のカスタマイズ 「名字」と「名前」コントロールを一つにして「氏名」[…]
コピペ後に修正する箇所
「検索」(従業員検索)コントロールの
→プロパティシート
→データ
→集合ソース
→クエリビルダーを立ち上げる
→「選択」フィールド(選択: IIf(IsNull([退職日]),1,2))の
→抽出条件を変更する [Forms]![F01従業員リスト]![選択](F01従業員編集 を F01従業員リストに変更)
→クエリビルダーを保存して閉じる
マクロの設置
・「99共通」マクロの「再クエリ」サブマクロを流用する
・「検索」コンボボックスに プロパティシート→イベント→更新後処理→マクロ「99共通.再クエリ」
●「F01従業員リストサブ」サブフォームの設定
サブフォームの設置
→フォームデザイン
→リボンからサブフォームをクリック
→「詳細」部の「検索」コンボボックスの下くらいに展開する
→サブフォームウィザードが起動するので 既存のフォームを使用する を選択
→既存リストより「F01従業員リストサブ」を選択して「次へ」
→サブフォームの名前指定は表示されている F01従業員リストサブ のまま「完了」
→サブフォームが表示されるのでフォームの適所に移動させて終了
●「再検索」「詳細」「新規登録」「編集」「元に戻す」「閉じる」ボタンの設定
「再検索」ボタンの設定
ボタンの機能
「従業員検索」で検索された表示データをクリアにして初期値の状態に戻す
マクロの作成
よく使うアクションなので「99共通」マクロ下に「コンボ再検索」サブマクロを作成
サブマクロ:コンボ再検索 | ||
値の代入 | ||
アイテム= | [検索] | |
式= | Null | |
再クエリ | ||
コントロール名 | ||
マクロの中止 | ||
サブマクロの最後 |
マクロの簡単解説
「検索」コンボボックスに入力されているデータをクリアにして再クエリを実行する。再クエリのコントロール名は指定せずフォーム内のクエリ全部を再クエリする
マクロの設置
・作成したマクロは上書き保存する
・「再検索」ボタンに プロパティシート→イベント→クリック時→マクロ「99共通.コンボ再検索」
「詳細」ボタンの設定
ボタンの標題は「詳細」だがフォームに「詳細」名が存在するのでボタンに「詳細」の名前は付けられない。名前は「明細」とした
ボタンの機能
従業員リストに表示されるデータ以外の全ての情報を表示するためのポップアップフォームを開く
ポップアップフォームの作成
「F01従業員編集」フォームを流用して詳細データを表示するため改めては作らない
マクロの作成
「01従業員」マクロ下に「詳細開く」名でサブマクロを作成
「01従業員.詳細開く」マクロ
サブマクロ:詳細開く | |||
フォームを開く | |||
フォーム名 | F01従業員編集 | ||
ビュー | フォームビュー | ||
値の代入 | |||
アイテム= | [Forms]![F01従業員編集]![選択] | ||
式= | [Forms]![F01従業員リスト]![選択] | ||
値の代入 | |||
アイテム= | [Forms]![F01従業員編集]![検索] | ||
式= | [Forms]![F01従業員リスト]![F01従業員リストサブ]![従業員コード] | ||
マクロの実行 | |||
マクロ名 | 01従業員.編集表示 | ||
マクロの中止 | |||
サブマクロの最後 |
マクロの簡単解説
詳細データを表示する「F01従業員編集」フォームを開いて 編集フォームの「選択」コントロールの値をリストフォームの「選択」コントロールに挿入する。続けて編集フォームの「検索」コントロールの値をリストフォームの「従業員コード」コントロールに挿入する。先に作ったマクロを流用して「01従業員」マクロの「編集表示」サブマクロを実行する。「編集表示」マクロは「従業員コード」コントロールを元に全てのデータをフォームに表示させる。
マクロの設置
・作成したマクロは上書き保存する
・「詳細」(明細)ボタンに プロパティシート→イベント→クリック時→マクロ「01従業員.詳細開く」
「新規登録」ボタンの設定
ボタンの機能
新規従業員を登録するためのポップアップフォームを開く
ポップアップフォームの作成
従業員マスタ新規登録フォーム
従業員マスタ「新規登録」フォーム作成 デザインビュー 「新規登録」フォームは「テンプレポップアップ」フォームをコピーしてフォーム名を「F01従業員新規」とした。 ①「F01従業員新規」をデザインビュ[…]
マクロの作成
「01従業員」マクロ下に「新規登録開く」名でサブマクロを作成
「01従業員.新規登録開く」マクロ
サブマクロ:新規登録開く | |||
フォームを開く | |||
フォーム名 | F01従業員新規 | ||
ビュー | フォームビュー | ||
マクロの中止 | |||
サブマクロの最後 |
マクロの簡単解説
「F01従業員新規」フォームを開く
マクロの設置
・作成したマクロを上書き保存する
・「新規登録」ボタンに プロパティシート→イベント→クリック時→マクロ「01従業員.新規登録開く」
「編集」ボタンの設定
ボタンの機能
登録された従業員情報を編集するためのポップアップフォームを開く
ポップアップフォームの作成
従業員マスタ編集フォーム
従業員マスタ「編集」フォームの作成 デザインビュー 「F01従業員新規」フォームをコピペしてフォーム名を「F01従業員編集」とした。 コピペ後のカスタマイズ 「名字」と「名前」コントロールを一つにして「氏名」[…]
マクロの作成
「01従業員」マクロ下に「編集開く」名でサブマクロを作成
「01従業員.編集開く」マクロ
サブマクロ:編集開く | |||
フォームを開く | |||
フォーム名 | F01従業員編集 | ||
ビュー | フォームビュー | ||
マクロの中止 | |||
サブマクロの最後 |
マクロの簡単解説
「F01従業員編集」フォームを開く
マクロの設置
・作成したマクロを上書き保存する
・「編集」ボタンに プロパティシート→イベント→クリック時→マクロ「01従業員.編集開く」
「元に戻す」ボタンの設定
「再検索」ボタンと同じ機能だが 不慣れなオペレーターのために 「元に戻す」という言い方でわかりやすい場所に設定しておいた
注意
「再検索」ボタンはメインフォームに設置されていて、「元に戻す」ボタンはサブフォームに設定されているため「再検索」に設置したマクロをそのまま使えない。改めてマクロを作成する必要がある
マクロの作成
「01従業員」マクロ下に「元に戻す」名でサブマクロを作成
「01従業員.元に戻す」マクロ
サブマクロ:元に戻す | |||
コントロールの移動 | |||
コントロール名 | 再検索 | ||
値の代入 | |||
アイテム= | [Forms]![F01従業員リスト]![検索] | ||
式= | Null | ||
再クエリ | |||
コントロール名 | |||
マクロの中止 | |||
サブマクロの最後 |
マクロの簡単解説
「検索」コンボボックスに入力されているデータをクリアにして再クエリを実行する。再クエリのコントロール名は指定せずフォーム内のクエリ全部を再クエリする
マクロの設置
・作成したマクロを上書き保存する
・「元に戻す」ボタンに プロパティシート→イベント→クリック時→マクロ「01従業員.元に戻す」
「閉じる」ボタンの設定
ボタンの機能
「F01従業員リスト」フォームを閉じる
マクロの作成
多様するマクロは「99共通」に納めてあるので流用する。今回は「閉じる」サブマクロを流用
マクロの簡単解説
カレントフォームを閉じる(フォーム名は指定しない)
マクロの設置
・「閉じる」ボタンに プロパティシート→イベント→クリック時→マクロ「99共通.閉じる」