Microsoft Access 2003のパフォーマンスに関する覚え書き

仕事中に偶然見つけたAccessのバグと、その解決策。

事象:フォームのデザインビューで編集時、VBAの保存時などに、特に重いデータやパーツを扱っているわけでもないのに、動作に著しく時間がかる
原因:同じマスタに、複数回に分けてテーブルをリンクしている

どうやら、Access(2003で確認)のリンクテーブルは、複数回に分けて接続するとパフォーマンスが落ちる場合があるらしい。
つまり、同じマスタにリンクされるリンクテーブルを増やす場合は、一度すべてのリンクテーブルを削除してから、あらためてすべてのテーブルを選択して一度にリンクする必要があるということ。

簡単に例を出すと、
A.mdb(フォームなど操作用のmdb)
B.mdb(テーブルなどデータベース用のmdb)
B-1(B.mdb内のテーブル)
B-2(B.mdb内のテーブル)
B-3(B.mdb内のテーブル)

上記のような構成で、AからBのテーブルにリンクを貼っている場合に、B-1とB-2をリンクテーブルにして処理を構築した後で、B-3のテーブルを作成し、そこに『テーブルのリンク』でB-3だけを選んでリンクすると、発生する模様。
このような場合には、いったんAからB-1とB-2を削除して、『テーブルのリンク』でB-1、B-2、B-3を選択して、一度にリンクする必要がある。