2020.1.28

Accessのみで画面(フォーム、クエリ)とデータ(テーブル)を作成する場合は別々のファイルで管理する

Accessでアプリを作成する場合、データをAccess以外のDBに保存するならいいですが、Accessにデータも保存するとなると、画面(フォーム、クエリなど)とデータ(テーブル)は別々のファイルにした方が、後々のことを考えると安心です。

目次

  • 画面(フォーム、クエリなど)とデータ(テーブル)でファイルを分ける理由
  • 外部データをリンクテーブルとして取り込む方法
  • リンクテーブルを利用する際の注意点

画面(フォーム、クエリなど)とデータ(テーブル)でファイルを分ける理由

ファイルを分ける理由は以下の通りです。

  • 運用後の不具合対応や改修などで画面に修正が入った場合はファイルの差し替えだけで対応できる(同じファイルにデータを保持している場合、最新データの移行などが必要)
  • Accessのファイルは結構壊れやすいのでデータを保持したファイルを短いスパンで定期的にバックアップしたい(画面も含まれていると容量が大きくなる)

上記の理由から、個人で作るなら一緒でもいいですが、仕事で開発するならファイルを分けるのは必須です。

ちなみにAccessのファイルの壊れやすさですが、1ヶ月間ほど開発で携わった時は、2~3回壊れて起動すらできなくなることがあり、起動できてもVBAの動作がおかしかったことがあります。

そんなわけで、画面とデータのファイルを別々にして、画面側のAccessファイルからデータファイルを読み込んで、リンクテーブルとして取り込む必要があります。

外部データをリンクテーブルとして取り込む方法

データ(テーブル)を抜き出したAccessファイルをリンクテーブルとして画面側のAccessファイルに取り込む方法ですが、まず、サンプル用に以下のようなデータファイルを用意します。

続いて画面側のAccessを開いて、メニューから「外部データ > 新しいデータソース > データベースから」にある「Access」を選択します。

設定画面が表示されたら、ファイル名に先ほど用意したデータファイルのパスを指定して、保存方法に「リンクテーブルを作成してソースデータにリンクする」を選択します。

続いて、リンクしたいテーブルの一覧が表示されるので、必要なテーブルを選択してOKボタンを押します。

以上の設定で、画面側のAccessファイルから外部データに指定したAccessのテーブルが参照できます。

リンクテーブルはデータの操作(追加、編集、削除)は可能ですが、カラムの追加や型の変更は行えないので、その場合はデータファイルのテーブルを直接修正します。

リンクテーブルを利用する際の注意点

リンクテーブルを設定する場合、参照先が相対パスではなく絶対パスである点に注意する必要があります(相対パスでの指定は不可)。

ファイルサーバに画面とデータのAccessファイルを置いていて、それをローカルにコピーして使っていたら、ローカルのデータを修正していると勘違いして、実際にはファイルサーバのデータファイルを修正してしまう可能性があるので、ファイルを別の場所にコピーしたらリンクテーブルの参照先を設定し直します。

参照先を変更するには、メニューの「外部データ」にある「リンクテーブルマネージャー」を選択します。

設定画面が開いたら、参照先を変更したいデータソースを選択し、「編集」ボタンを押します。

リンクの編集ダイアログのファイル名を変更後のパスに修正して保存すれば完了です。

なお、編集ではなく、再リンクからでも変更可能です。

Access】関連記事