【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します
【連載】#16 Accessのマクロを細かく調整し、おしゃれに自動化する方法を説明します

本記事では前回までに作成した Access ファイル 16_01.accdb のファイル内に作成した
T0000_東京都コロナ発症状況_マスタ テーブル
を別の Access ファイル から リンク参照 する方法について紹介します。

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します
しらかば堂

いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?

外部テーブルの参照

本記事では

【連載】#06 めんどくさい仕事を楽にするツールをAccess VBAを使ってどう作るのか

で紹介した 「ツールの開発は分解可能な小さなピースに分解し
このピースごとに少しずつ解決、実装していく
」という考え方に基づき

今回作成する Access ファイル 17_01.accdb で

【連載】#16 Accessのマクロを細かく調整し、おしゃれに自動化する方法を説明します

で作成した Access ファイル 16_01.accdb 内の
T0000_東京都コロナ発症状況_マスタ テーブル
リンク参照 する方法について紹介します。

この Access ファイル 16_01.accdb をお持ちでない方は

【連載】#14 Access のテーブルを Excelブックにエクスポートする方法を説明します
【連載】#15 CSVファイルを直接Accessのテーブルにインポートする方法を説明します
【連載】#16 Accessのマクロを細かく調整し、おしゃれに自動化する方法を説明します

をもう一度復習し、このAccess ファイル 16_01.accdb を自作して頂くことを強くお勧めします。


またお時間のない方、手っ取り早く本記事の内容を確認したい方には

(有償) 16_01.accdb から個人のPC環境に依存する部分を削除した 16_02.zip のダウンロードは次のリンクからどうぞ。

(有償) 16_02.zip をダウンロードする


リンク参照の目的

ところで先ほど
今回作成する Access ファイル 17_01.accdb から
Access ファイル 16_01.accdb 内の
T0000_東京都コロナ発症状況_マスタ テーブル
を参照すると紹介しましたが

何故このようなことをすると思いますか?

この Access ファイル 16_01.accdb というファイルはざっくりいうと
東京都_新型コロナウイルス陽性患者発表詳細 に掲載され
個人のPC内のダウンロードフォルダ配下に保存された
130001_tokyo_covid19_patients.csv
から不要な部分を削除し
T0000_東京都コロナ発症状況_マスタ テーブル
を作成するといった機能をもったツールでした。

一方、今後作成する以下の3種類のグラフ用データを整形するツールは

  1. コロナウイルスによる発症数と退院者数比率推移
  2. コロナウイルスの男女別感染者数推移
  3. コロナウイルスの世代別感染者数推移

それぞれ、既に作成済みの
T0000_東京都コロナ発症状況_マスタ テーブル
を参照して個別のツールとして作成するほうが

ツールとしての目的が明確になり
かつツール内の マクロクエリ 等の見通しがよくなりますよね。

またこうすればそれぞれのツールの要不要もファイル単位で
取捨選択することができるようになります。

そしてこのような考え方によれば

それぞれのツールはその冒頭で Access ファイル  16_01.accdb 内の
T0000_東京都コロナ発症状況_マスタ テーブル
を参照する手順が必要になりますが

その方法は
他のAccess ファイル内 テーブル への リンク を張る共通手順なので
今回それを紹介することにしたわけです。

動画による手順確認

それではいつものように
今回の手順の流れを実際に次の動画で何回か確認しておきましょう。
見づらいときは画面をフルスクリーンにすることをお勧めします。

 

それでは以降でこの動画内容を少し補足しておきます。

他の .accdb 内テーブルへのリンク作成方法

他のAccess ファイル  .accdb ファイル内 テーブル への リンク 作成方法は
Access リボンメニュー 欄で

外部データ > 新しいデータソース > データベースから(D) > Access
を順にクリックしていき

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

次に現れるファイル選択画面で対象ファイル
この例では 筆者の自宅PCのデスクトップ上に保存された
Access ファイル 16-01.accdb
を選択すると次の画面になるので

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

このダイアログ画面の下にある
〇リンクテーブルを作成してソースデータにリンクする(L)

にチェックし、OK ボタンをクリックすると現れる以下の画面で
リンク参照したい テーブル を選択して、OK ボタンをクリックします。

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

すると Access は指定されたリンクを作成し画面が以下のようになります。テーブル前に➡がついているのがリンクされたテーブルです。

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

試しのこのリンク印➡のついた
T0000_東京都コロナ発症状況_マスタ テーブル
をダブルクリックすると

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

となり、これは Access ファイル 16_01.accdb 内の
T0000_東京都コロナ発症状況_マスタ テーブル
と同じものであることが確認できます。

ちなみに先ほどのダイアログ画面

【連載】#17 他のAccessファイルのテーブルを参照して再利用する方法を説明します

で規定値の
〇 現在のデータベースにテーブル、クエリ、フォーム、レポート、マクロ、モジュールをインポートする(I)

にチェックし、OK ボタンをクリックすると

元の Access ファイル に存在し、そのあと指定した
テーブルクエリフォームレポートマクロモジュール
をそのまま現 Access ファイルにコピーすることもできます。

リンクとコピーは何が違うのか

ところで リンク コピー は何が違うのでしょうか?

テーブルの参照にリンクを使用した場合

その実体はもとの Access ファイルの中に存在し続けているので
仮に現在使用中の  Access ファイルでリンク参照設定をしたあとに
もとの Access ファイルの中でこの対象テーブルの内容が更新された場合

現在使用中の Access ファイルはその最新のテーブル内容を参照することができます。

テーブルのコピーを使用した場合

その実体はもとの Access ファイルから現在使用中の Access ファイルに
複写されるので
仮に現在使用中の Access ファイルでコピーを選択したあとに
もとのAccess ファイルの中でこの対象テーブルの内容が更新された場合

現在使用中の Access ファイルはコピーをした瞬間の古いテーブル内容を
参照することになります。

リンクの利点と難点

このどちらを選ぶかは作ろうとするツールの目的、環境によって選択すれば
良いのですが

リンクを使った場合

  1. 例えば今回の
    T0000_東京都コロナ発症状況_マスタ テーブル
    のようにサイズの大きなテーブルを複数持つ必要がないのでPCのメモリ、HDD等のリソースに無駄がない
  2. もとの Access ファイルの更新に随時追従できリアルタイム性の高いツール作成ができる

等の利点があります。

一方難点として

  1. リンクテーブルはあなたが使用しているPCに紐づいたファイルへの絶対パス名をリンク情報として作成するので、他からもらってきたツールを自分のPCで使用するときには
    自分用にリンクテーブルを再度作り直す必要がある
  2. もとの Access ファイルをネットワーク上の共有ドライブ等に保存してこれを現在使用中の Access ファイルから参照するという使い方をする場合、ネットワークの影響を受けやすくなるので自分のPC内だけでツールを完結する場合に比べて相対的に動作が不安定になる

といったことがあります。

ネットワークドライブの使い方について興味のある方は必要に応じて、以下の記事も参考にしてくださいね。

【Windows環境設定】VBScript とバッチファイルを利用しNASをネットワークドライブに組み込む

まとめ

いかがでしたか?

今回は

  • 現在作成中の .accdb ファイルから別の .accdb ファイル内のテーブルをリンク参照する方法
  • リンク参照とコピーの違い
  • リンク参照の利点と難点

について紹介しました。

この リンク参照 をうまく使うことで、
部品化されたツールを効率的に開発することができますので
このスキルはあなたのツール開発の生産性をますます高めていきます。

さてこの記事全体の目標は

  • 今の状況から抜け出してもっと前向きな仕事に取り組みたい
  • さっさと仕事を切り上げて充実したアフターファイブを過ごしたい

でしたよね。

あなたの解決したい問題は何ですか?
次回はまた

【連載】#18 Access を使ってグラフ作成用データをどのように作るか一緒に考えよう

Access VBA の新しい窓を開きましょう。


Microsoft Access 関連教材は次のリンクからどうぞ。

Access VBA 関連教材の紹介


(有償)本記事中で参照している 16_01.accdb から個人のPC環境に依存する部分を削除した 16_02.zip のダウンロードは次のリンクからどうぞ。

(有償) 16_02.zip をダウンロードする