Accessのサブフォームでデータベースを活用した簡単便利な仕事管理システムを作る

データベースソフトウェアとして定番のAccessには、2つのテーブル間を指定したフィールドで連結させ同じフォームに表示させるサブフォームという機能があります。

簡単に言うと、基本データにある重要な項目(人、モノ、法人など)に対して、過去にどう行ったアクションを起こしたか、またはどいいった対応をした履歴(または予定)があるかを一つアプリケーション画面で確認できるというものです。

テーブル同士を連結させるサブフォーム

この主要項目と関連情報(作業履歴など)を表示画面にリンクさせて複数表示する機能はデータベースソフトウェアが持つ特徴でもあります。

例えば、連絡先などに登録した顧客レコードに対して、訪問履歴などの複数ある営業活動データをリレーション機能により該当するものだけを抽出して表示させたいときに役立てることができます。

こうした機能を活用することこそが、データベースを使いこなす上で得られる最大のメリットであり魅力でもあるとも言えるでしょう。

指定カラムを連結させたサブフォームの追加方法

最初にサブフォームを設置するためのメインのフォームを作成します。

フォームウィザードをクリック

メインに使うフォームを作成

フォーム名を入力

フォーム名を入力

作成したフォーム

下の余白にサブフォームを作る

サブフォームを設置するベースとなるフォームを作成した後、必要によりフッターの高さなどを調整し挿入スペースを確保します。

すでに作成済みのフォームを使う場合は、左サイドのフォーム名またはフォーム画面上のタブを右クリック→「デザインビュー」を選択して編集モードにします。

サブフォームのアイコンをクリック

コントロールからサブフォームを選択

画面上のメニュータブに「フォームデザイン」タブ(フォームデザインツール)が表示されるようになったらデザイン → コントロール→「サブフォーム/サブレポート」(Access2016だと最後から5番目のアイコン)をクリック。

挿入場所を指定

マウスで挿入位置を指定

サブフォームを表示したい位置をマウスで指定します。

既存のテーブルを使用

既存のテーブルを使用

最初のメニューでは、既存のテーブルまたはクエリを使用するを選択。

taskテーブル

taskテーブルの全フィールドを選択

「テーブル/クエリ」でサブフォームに表示したい「テーブル:task」を指定。

続いてリストに表示するフィールドを指定します。ここではすべてのフィールドを入れています。

独自に設定

リンクを独自に設定

メインフォームとリンクするフィールドの選択には「独自に設定する」を選びます。

登録コードを指定

リンクするフィールドは両方に登録コードを指定

この作成例ではどちらにも「登録コード」を指定。

「フォーム/レポート」と「サブフォーム/レポート」のボックスをプルダウンできない場合にはボックスにマウスポインタを合わせて文字入力するとプルダウン用のボタンが表示できます。

サブフォーム名の入力

サブフォームの名前を指定

最後にサブフォームの名前を指定して完了。

作成したサブフォームはデザインビューではリスト表示になっていませんが、タブを右クリックしてフォームビューにするとリスト表示できます。

日付の並べ替え

日付を降順に変更

実運用ではデータが新しい順の方が便利なので日付を降順に設定して保存。

完成したサブフォーム

完成したサブフォーム

これで目的の基本データのフォームに表示させた対象への作業履歴が表示されるようになりました。

コードで検索

目的のデータを検索

基本データを変更して表示するには、画面下の検索枠に目的のレコードの「登録コード」(画像では222)を入力し検索します。

指定したデータを表示

指定した222コードの情報が表示される

これで222のコードで指定したB社への営業履歴が表示されるようになりました。

まとめ

当記事で作成した例は、取引先を対象にした業務履歴をサブフォームに出力したものでした。

このように基本データに対して任意の識別コードを割り当て、別なテーブルとリンクさせることで、日々の作業や管理上のデータを対象とする個体または事象ごとに整理し成果を確認することが可能になります。

こうしたデータの取得はExcelなどの表計算ソフトでは実現に手間がかかったり、場合によっては専用のソフトウェアの開発を外注することになり手軽には把握しづらいものです。

日々工夫を凝らしデータベースソフトウェアを使いこなすことで、こうしたデータの抽出が楽になり、結果として営業活動の効率化や生産性の向上につながることにもなるでしょう。

おすすめ記事

アクセスからODBC接続 AccessからMySQL(MariaDB)へODBC接続 MicrosoftのAccessは難しい Accessというデータベースソフトが難しすぎる『もっとゆるく使うには?』