Accessそのリンクテーブル使われてる?を調べたい

お客さんからの要望で、Accessで納品したアプリを改修する事になりました。

自分で作ったAccessなのですが、あれ?このテーブル使っていたっけ?というものが出てきました。

テーブル、クエリ、フォーム、レポート合わせて100以上あるオブジェクトの中で一個一個調べていくのはとっても大変だなぁ。簡単に依存関係は調べられないものかなと。

ところが、リンクテーブルでは、このオブジェクトの依存関係がオンになりません。調べられない。(◞‸◟)

はぁショック。Accessの仕様上、外部のテーブルをリンクしている場合依存関係は調べる事ができないのですね。

今回の場合、PostgreSQLのテーブルにリンクして、リンクテーブルとしてAccessを基本的にレポートツールとして使う方法でアプリを作成し納品していました。

そこで、ローカルテーブルに変換し、

無事に依存関係を調べる事が出来ました。

リンクテーブルをローカルテーブルに変換しても、特に問題なくAccessレポートは動作してくれます。ただ、その後、本体のPostgresDBのテーブルが更新されてもそれは反映されないので、依存関係を調べたい場合は、一時的にAccess本体をコピーしておいて、調査用アプリとして調べる事を進めていけば後々問題出ないですね。

オブジェクトの依存関係を調べる時に、もう一つ必要なのが、無視されるオブジェクト(調べられないオブジェクト)がある事です。

ODBC接続で利用した、パススルークエリや、ユニオンクエリなどがその対象になります。

この無視されているオブジェクトは、一つ一つ調べる必要があります。

リンクテーブルの依存関係を調べたければ、テスト用にアプリをコピーし、一度リンクテーブルをローカルテーブルに変換する事で、依存関係を調べる事ができるようになります。

ただし、無視されたオブジェクトは別途確認する必要があります。