データベースソフトウェアとして定番のAccessには、2つのテーブル間を指定したフィールドで連結させ同じフォームに表示させるサブフォームという機能があります。
簡単に言うと、基本データにある重要な項目(人、モノ、法人など)に対して、過去にどう行ったアクションを起こしたか、またはどいいった対応をした履歴(または予定)があるかを一つアプリケーション画面で確認できるというものです。
テーブル同士を連結させるサブフォーム
この主要項目と関連情報(作業履歴など)を表示画面にリンクさせて複数表示する機能はデータベースソフトウェアが持つ特徴でもあります。
例えば、連絡先などに登録した顧客レコードに対して、訪問履歴などの複数ある営業活動データをリレーション機能により該当するものだけを抽出して表示させたいときに役立てることができます。
こうした機能を活用することこそが、データベースを使いこなす上で得られる最大のメリットであり魅力でもあるとも言えるでしょう。
指定カラムを連結させたサブフォームの追加方法
最初にサブフォームを設置するためのメインのフォームを作成します。
サブフォームを設置するベースとなるフォームを作成した後、必要によりフッターの高さなどを調整し挿入スペースを確保します。
すでに作成済みのフォームを使う場合は、左サイドのフォーム名またはフォーム画面上のタブを右クリック→「デザインビュー」を選択して編集モードにします。
画面上のメニュータブに「フォームデザイン」タブ(フォームデザインツール)が表示されるようになったらデザイン → コントロール→「サブフォーム/サブレポート」(Access2016だと最後から5番目のアイコン)をクリック。
サブフォームを表示したい位置をマウスで指定します。
最初のメニューでは、既存のテーブルまたはクエリを使用するを選択。
「テーブル/クエリ」でサブフォームに表示したい「テーブル:task」を指定。
続いてリストに表示するフィールドを指定します。ここではすべてのフィールドを入れています。
メインフォームとリンクするフィールドの選択には「独自に設定する」を選びます。
この作成例ではどちらにも「登録コード」を指定。
「フォーム/レポート」と「サブフォーム/レポート」のボックスをプルダウンできない場合にはボックスにマウスポインタを合わせて文字入力するとプルダウン用のボタンが表示できます。
最後にサブフォームの名前を指定して完了。
作成したサブフォームはデザインビューではリスト表示になっていませんが、タブを右クリックしてフォームビューにするとリスト表示できます。
実運用ではデータが新しい順の方が便利なので日付を降順に設定して保存。
これで目的の基本データのフォームに表示させた対象への作業履歴が表示されるようになりました。
基本データを変更して表示するには、画面下の検索枠に目的のレコードの「登録コード」(画像では222)を入力し検索します。
これで222のコードで指定したB社への営業履歴が表示されるようになりました。
まとめ
当記事で作成した例は、取引先を対象にした業務履歴をサブフォームに出力したものでした。
このように基本データに対して任意の識別コードを割り当て、別なテーブルとリンクさせることで、日々の作業や管理上のデータを対象とする個体または事象ごとに整理し成果を確認することが可能になります。
こうしたデータの取得はExcelなどの表計算ソフトでは実現に手間がかかったり、場合によっては専用のソフトウェアの開発を外注することになり手軽には把握しづらいものです。
日々工夫を凝らしデータベースソフトウェアを使いこなすことで、こうしたデータの抽出が楽になり、結果として営業活動の効率化や生産性の向上につながることにもなるでしょう。
おすすめ記事
AccessからMySQL(MariaDB)へODBC接続 Accessというデータベースソフトが難しすぎる『もっとゆるく使うには?』