Access複数ファイル連携の実例|業務に役立つシステム構成ガイド

Access
スポンサーリンク

こんにちは、Access好きブロガーのなかぜんです。

「Accessって1ファイルで完結させるイメージが強いけど、大規模になってくると限界を感じる…」そんな悩み、ありませんか?

実はAccessでも、複数ファイルをうまく連携させることで、拡張性や保守性をグッと高めることができます。この記事では、実務でよく使われる「フロントエンド・バックエンド分離」や「共有モジュールの活用」など、Access上級者向けの連携構成を実例とともに解説します。

スポンサーリンク

複数ファイル構成の基本

1. フロントエンドとバックエンドの分離

業務システムの安定運用には、データと画面(フォーム・レポート・VBA)を分けるのが定番です。

  • バックエンド:テーブルのみを格納(例:Data.accdb
  • フロントエンド:フォーム・レポート・クエリ・VBAなどを格納(例:App_FE.accdb

フロントエンドからバックエンドにリンクテーブルを設定し、複数人が同時にデータを扱える構成にします。

実例:共有モジュールを使った複数ファイル連携

ここでは、複数のフロントエンドで共通機能を使いたい場合の実装例をご紹介します。

1. 構成イメージ

  • App_FE1.accdb:得意先管理用
  • App_FE2.accdb:売上管理用
  • CommonLib.accdb:共通処理用(VBAモジュール格納)

2. VBAで共通モジュールを呼び出す仕組み

App_FE1App_FE2から、CommonLibの関数を呼び出す例です。

' App_FE側から呼び出す処理
Public Sub CallSharedProcedure()
    Dim acc As Access.Application
    Set acc = New Access.Application

    acc.OpenCurrentDatabase "C:\AccessSys\CommonLib.accdb"
    acc.Run "SharedGreeting", "なかぜん"
    acc.Quit

    Set acc = Nothing
End Sub

このとき、CommonLib.accdb 側には次のようなプロシージャを用意しておきます:

' CommonLib.accdb 側
Public Function SharedGreeting(name As String)
    MsgBox "こんにちは、" & name & "さん!共通処理を呼び出しました。", vbInformation
End Function

この方法を使えば、複数ファイルで共通処理を一元管理できます。

注意点とよくあるミス

  • ファイルパスが固定されている:フルパスをベタ書きすると、配布後にエラーになることがあります。
    →相対パスや設定テーブルを使って可変にしましょう。
  • 他のAccessファイルを起動しっぱなし:インスタンスを明示的に破棄(Set acc = Nothing)しないと、ファイルが残ります。
  • セキュリティ警告の解除漏れ:信頼された場所に配置することで、マクロ警告を回避できます。

応用ポイント:モジュールの自動コピーとバージョン管理

共有モジュールを更新した際、すべてのフロントエンドに手動で反映するのは大変ですよね。そんなときは、VBAで自動的にモジュールを上書きコピーする仕組みも検討しましょう。

' 共有モジュールを自動でコピーするサンプル
Public Sub CopyModule()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    fso.CopyFile "C:\CommonModules\mod_Shared.bas", CurrentProject.Path & "\mod_Shared.bas", True
    Application.LoadFromText acModule, "mod_Shared", CurrentProject.Path & "\mod_Shared.bas"
End Sub

このようにすれば、管理性もアップします。

まとめ:Access連携構成で広がる活用の可能性

今回ご紹介したように、Accessでも複数ファイルを使った柔軟な構成が可能です。

  • フロント・バックの分離で同時利用に強く
  • 共有モジュールで開発効率アップ
  • パス管理・自動コピーで保守性も高める

Accessは単一ファイルに閉じない運用も得意なんです。

次回は「Accessでの自動更新チェック機能」について紹介予定です。お楽しみに!

それでは、今日もAccessライフを楽しみましょう〜。
なかぜんでした!