【業務効率化システム実践】ACCESS マスタフォーム 作り方

【業務効率化システム実践】ACCESS マスタフォーム 作り方

目次

基幹業務システムのマスタデータをACCESSで参照

リニューアルした基幹業務システムでは 社員情報や車両情報でほしかった情報をすべてマスタに項目として入れてもらいました。なので、以前のように ACCESSで情報を補ったテーブルをつくって リンクして 両方のデータを参照するという複雑なことはしなくてもよくなりました。

基幹業務システムのマスタをリアルタイムでそのまま参照するというフォームをACCESSで作っていきたいと思います。

情報をみるだけなら業務システムの社員マスタフォームで十分じゃないの?

ももい
ももい

いやいや 全員が業務システムの社員マスタをみれるわけではないねんで~

社員マスタには業務システムをつかう全員がみることができるわけではありません。
全ての項目を盛り込んでもらったからには、情報を更新、閲覧できるものは総務部および幹部だけというふうに制限をかけてもらっています。

そのため、他の社員のために、各担当者に必要な情報だけがみることができるフォームをACCESSで作っていきます。

作成ツール  Microsoft 365 ACCESS 正規版はももいと数名分 他のひとは ランタイム版

社員マスタ 参照フォーム 作り方実践

社員マスタフォームを作っていきます。

社員マスタテーブルからフォームを作成する

社員マスタ作成01
ACCESSの社員マスタフォーム作成実録01

基幹業務システムのデータが接続されています 
このテーブルを使って 社員マスタのフォームをつくります

社員マスタのテーブルを選択して 作成 - フォーム を選ぶと そのテーブルの項目をすべて選ばれたフォームができあがります。

社員マスタ作成02
社員マスタの項目
  1. ID 全件に振られる連番
  2. 社員コード
  3. 社員氏名
  4. 氏名カナ
  5. 部門コード
  6. 役職
  7. 所属コード  (グループコード)
  8. 性別    0:男  1:女
  9. 生年月日
  10. 郵便番号
  11. 住所 1
  12. 住所 2
  13. 電話番号
  14. 携帯電話番号
  15. 緊急連絡先 住所
  16. 緊急連絡先 電話番号
  17. 緊急連絡先 氏名
  1. 入社日
  2. 退社日
  3. 経験年数起算日
  4. 健康診断日
  5. 血液型
  6. 血圧(上)
  7. 血圧(下)
  8. 健康保険番号
  9. 基礎年金番号
  10. 雇用保険番号
  11. 権限
  12. パスワード
  13. 削除フラグ
  14. 登録者
  15. 登録時刻
  16. 更新者
  17. 更新時刻
【おまけ】 フォームをつくる別の方法

フォームを作る方法はほかにもあります

社員マスタ作成03

作成のフォームデザインをえらぶと 何も項目が配置されていない白紙のフォームができます

プロパティシートをえらび レコードソースから 社員マスタのテーブルを選びます

社員マスタ作成04

すると白紙のフォームに社員マスタテーブルがセットされ フィールドリストから項目を選んで
ドラッグアンドドロップで配置することができます

どちらの方法でも作成できます

項目が多すぎて必要な項目だけでいい場合は【おまけ】の方法で。
すべての項目が必要、もしくはとりあえず全部配置しておいて いらないものを削除する場合は最初の方法で という使い方をしています。

社員資格マスタテーブルからフォームをつくる

社員マスタ 全部みられる フォームができたね~

ももい
ももい

新システムでは社員の資格マスタもいれてもらったんで

連携していきましょう

社員マスタのフォームと同様に 社員保有資格マスタのフォームをつくっていきます

社員資格マスタ01

社員保有資格マスタ(テーブル)を選択しフォームをえらび自動的にフォームが作成できました

社員保有資格マスタの項目
  1. ID 全件に振られる連番
  2. 社員コード
  3. 資格マスタの資格コード
  4. 資格番号
  5. 資格を取得した日付
  6. 資格の有効期限
  7. 削除フラグ
  8. 登録者
  9. 登録時刻
  10. 更新者
  11. 更新時刻

フォームの装飾 コントロールの配置

自動的にコントロールが配置されたフォームを視覚的にわかりやすく装飾、配置換えをおこなっていきます。
フォームのデザインを変更するとき 2つの方法があります
レイアウトビューとデザインビューがあります

レイアウトビューとデザインビューの違い

レイアウトビュー

レイアウト ビューは、デザイン ビューよりも視覚性を重視したビューです。 レイアウト ビューでフォームを表示すると、各コントロールに実際のデータが表示されます。 そのため、コントロールのサイズを設定するときや、フォームの視覚的な外観や使いやすさに影響する他の多くのタスクを実行するときにとても便利なビューです。

レイアウト ビューで実行できないタスクもあり、その場合はデザイン ビューに切り替える必要があります。 状況によっては、特定の変更を行うにはデザイン ビューに切り替える必要があることを通知するメッセージが表示されます。

デザインビュー

デザイン ビューには、フォームの構造が詳しく表示されます。 フォームのヘッダー、詳細、およびフッターの各セクションを確認することができます。 デザインの変更時に基になるデータを表示することはできませんが、レイアウト ビューよりデザイン ビューのほうがより簡単に実行できる特定のタスクがあります。 たとえば、以下のタスクを実行できます。

  • フォームにラベル、画像、線、四角形などのさまざまなコントロールを追加する。
  • プロパティ シートを使わずに、テキスト ボックス自体でテキスト ボックス コントロールのソースを編集する。
  • フォーム ヘッダー、詳細セクションなどのフォーム セクションのサイズを変更する。
  • レイアウト ビューでは変更できない特定のフォーム プロパティ (“既定のビュー”、”フォームビューの許可” など) を変更する。

レイアウトビューで項目の内容がすべて見えるようにコントロールのサイズを変更し 細かいところはデザインビューで修正していくことにします。

ブ長
ブ長

ん なにこれ うぇっ なんやこれ

今までバージョンの古いACCESSを使ってきてましたので Microsoft 365 のACCESSでは新しい機能が追加されているのか 使い勝手が微妙に違います

コントロールのひとつを サイズ変更や移動しようとしても ほかのコントロールが一緒に変更されてしまいます。これはフォームのコントロールがグループ化していることがわかりました。

フォームのコントロールのグループ解除

レイアウトの削除と結合・再設定

Accessでテーブルやクエリをもとにフォームを作成すると、コントロールを自由に移動できないということがあります。

それは、コントロールがグループ化されているためです。

デザインビューやレイアウトビューで、コントロールのグループ化を解除すると、自由に移動できるようになります。

また、2つのグループを結合することもできますし、グループ化を解除したコントロールを再度、グループ化することもできます。

コントロールグループ化

グループの選択をします。

選択の方法は どれかひとつのコントロールを選択すると左上に四方向の⇒マーが表示されそれをクリックすることですべてのコントロールが選択状態となりグループを選択したことになります。

または、「配置」タブの「行と列」グループにある「レイアウトの選択」を選ぶと同様にグループを選択したことになります。

グループ化されていると1つのコントロールを選択して幅を変更しようとすると グループのすべてのコントロールの幅が一緒に変更されます。この操作が便利な場合もありますが、1つのコントロールだけ幅を調整したいときは困りますので

グループを解除します。

グループの選択をした状態で レイアウトビューの場合は 右クリック - レイアウト - レイアウトの削除 で解除ができます。このあとデザインビューにしても 解除が引き継がれます。

デザインビューからグループの解除をするときは、上図のように 配置タブのレイアウトの削除で解除ができます。

この機能 ACCESS 2007には すでにあったみたいだよ

ももい
ももい

今まで どんだけ古いバージョンで粘ってきたんや~

社員マスタと社員保有資格データのフォームをリンクします

社員マスタ作成F01
社員マスタ作成F02

社員マスタフォームは単票で背景色やコントロールの配置を整えました

社員保有資格テーブルフォームは帳票で必要な項目だけを配置しました

今度はこれらを連携します 社員マスタの中に社員保有資格テーブルをサブフォームでいれます

社員マスタ作成F資格いり

ドラッグアンドドロップで社員マスタフォーム内に社員保有資格テーブルフォームを配置し
サブフォームフィールドのリンクビルダーで 親フィールドに社員マスタの社員コード(staff_code) 子フィールドに社員保有資格テーブルの社員コード(staff_code)をセットします

プロティシート01

社員マスタと社員保有資格テーブルがつながりました

社員マスタ作成資格

社員マスタと社員保有資格テーブルがつながり フォームでは社員の基本情報の中に保有資格の一覧を表示することができました

フォームをもっと便利にカスタマイズしていきます

社員マスタフォームの部署CDから 部署名を表示

このように最初は部署CDだけですが わかりやすく 部署名を表示します

テキストコントロールを配置し コントロールソースに 上記の式 Dlookup関数をいれることで部署名が表示されます

=DLookUp(”[部署名]”,”[部署マスタ]”,”[部署コード] = ” & [(フォームの)部署コード])

入社日や生年月日など日付から経過年数を表示(年齢、勤続年数)
経過年数02
経過年数02

このように最初は生年月日、入社年月日だけですが そこから経過年数 つまり生年月日では年齢 入社年月日から勤続年数 経験年数起算日から経験年数 健康診断受診日では1年以上経った場合 受診をうながすための警告用にコントロールを配置します

経過年数03

=IIF(Format(Date(),”mmdd”) < Format([生年月日],”mmdd”),DateDiff(“yyyy”,[生年月日],Date())-1,DateDiff(“yyyy”,[生年月日],Date()))

経過年数04

健康診断受診日から同様に年数を求め 1年たっていたら 書式設定でコントロールを赤にして警告とする

社員保有資格テーブルマスタの資格コードから資格名称を表示する
資格01

資格コードの隣にテキストコントロールを配置し 社員マスタの部署名と同様にコントロールソースにDLookUp関数を使います

=DLookUp(”[資格略名]”,”[資格マスタ]”,”[資格コード] = ” & [(フォームの)資格コード])

資格02

このように資格名称が表示されます

【完成】ACCESS 社員マスタフォーム
社員マスタ完成
社員マスタ完成

配置デザインに若干の物足りなさはありますが、とりあえず 社員マスタが全項目表示される参照フォームができあがりました。

健康保険番号や基礎年金番号などすべての項目がありますので、各担当別に不要な項目を隠したフォームを作ることになります。

基幹システムとリアルタイムで接続したACCESSのフォームのできあがりやね

でも これから各担当ごとのフォームを作るんだね

ももい
ももい

フォームをコピーして 不要な項目を削除していけばいいから

簡単ですよ

目次
閉じる