Accessを複数人で使うとエラー・クラッシュする?フロントエンドとバックエンドを分離して改善した事例
Accessを複数人で使うとエラーやクラッシュが発生することがあります
Microsoft Accessは、複数人でデータを共有して利用することができます。しかし、Accessファイルの配置方法やデータベースの構成によっては、複数人で利用したときにエラーやクラッシュが発生し、業務に支障をきたすことがあります。
実際に弊社にも、「Accessを3~4人で使っているとエラーが発生する」「突然Accessが落ちることがある」といったご相談があります。
今回ご紹介する事例では、NASの共有フォルダ上に1つのAccessファイルを配置し、そのファイルを3~4人で利用していました。
調査した結果、1つのAccessファイルの中に、フォームやクエリ、VBAなどのアプリケーション部分と、テーブル(データ)が一緒に入っており、同じAccessファイルを複数人で共有している構成になっていました。
そこで、Accessをフロントエンドとバックエンドに分離し、複数人で利用するための構成へ変更したところ、エラーやクラッシュが解消し、安定して運用できるようになりました。
Accessは複数人で利用できるのか?
結論からいうと、Accessは複数人で利用できます。
ただし、「Accessファイルを共有フォルダに置いて、全員がその1つのファイルを直接開けばよい」というわけではありません。
複数人でAccessを利用する場合は、データを保存する部分と、フォーム・クエリ・VBAなどのアプリケーション部分を分ける構成を検討することが重要です。
| 構成 | 役割 |
|---|---|
| フロントエンド(FE) | フォーム、レポート、クエリ、VBAなど、利用者が操作するアプリケーション部分 |
| バックエンド(BE) | 業務データを保存するテーブル部分 |
バックエンド側のテーブルをフロントエンドからリンクテーブルとして参照することで、複数の利用者が共通のデータを利用できます。
複数人で1つのAccessファイルを共有していた実際の事例
今回ご相談いただいたシステムでは、3~4人でAccessを利用していました。
構成を確認すると、NASの共有フォルダ上にAccessファイルが置かれており、フォーム、クエリ、VBA、テーブルなどがすべて1つのAccessファイルに入っていました。
| 項目 | 変更前の環境 |
|---|---|
| 利用人数 | 3~4人 |
| ファイルの配置場所 | NASの共有フォルダ |
| Accessの構成 | フロントエンドとバックエンドが1つのファイル |
| 利用方法 | 同じAccessファイルを複数人で利用 |
| 発生していた問題 | エラー、Accessのクラッシュ |
つまり、複数の利用者がNAS上にある同じAccessファイルを直接利用する構成になっていました。
原因は単一のAccessファイルを複数人で利用していたこと
調査の結果、今回の事例では、1つのAccessファイルを複数人で利用していた構成が、エラーやクラッシュの原因になっていました。
1つのAccessファイルの中に、フォームやVBAなどのプログラム部分とテーブルがすべて入っている状態で、そのファイルを複数人が共有すると、複数の利用者が同じファイルにアクセスすることになります。
特に業務システムでは、データの参照だけでなく、追加・更新・削除などの処理も発生します。
そのため、複数人で安定して利用するためには、単純に1つのAccessファイルを共有するのではなく、利用形態に適したデータベース構成にすることが重要です。
フロントエンドとバックエンドを分離
そこで今回のシステムでは、1つになっていたAccessファイルをフロントエンド(FE)とバックエンド(BE)に分離しました。
変更前
変更前は、NAS上にある1つのAccessファイルを3~4人で利用していました。
- フォーム
- レポート
- クエリ
- VBA
- テーブル
これらがすべて1つのAccessファイルに入っている構成です。
変更後
変更後は、アプリケーション部分とデータ部分を分離しました。
- フロントエンド:フォーム、レポート、クエリ、VBAなど
- バックエンド:データを保存するテーブル
フロントエンドからバックエンドのテーブルをリンクテーブルとして参照する構成に変更しました。
これにより、利用者はフロントエンドを使用しながら、共通のバックエンドに保存されたデータを利用できるようになります。
FE・BEを分離した結果、安定して稼働するようになりました
フロントエンドとバックエンドを分離して構成を見直した結果、それまで発生していたエラーやAccessのクラッシュが解消し、安定して稼働するようになりました。
| 変更前 | 変更後 |
|---|---|
| 1つのAccessファイルを複数人で利用 | フロントエンドとバックエンドを分離 |
| エラーが発生 | 安定稼働 |
| Accessがクラッシュする | クラッシュが解消 |
今回の事例では、サーバーやパソコンを高性能なものへ交換したのではなく、Accessの構成そのものを見直すことで問題を改善できました。
Accessを複数人で使う場合はフロントエンドを分けることが重要
Accessを複数人で利用する場合、バックエンドに共通データを保存し、利用者側ではフロントエンドを使用する構成が一般的です。
例えば3人で利用する場合、イメージとしては次のようになります。
利用者PC② → フロントエンド② ─┼→ 共有バックエンドDB
利用者PC③ → フロントエンド③ ─┘
このように、アプリケーション部分とデータ部分を分けることで、複数人で共通データを利用しながら、フロントエンドを分けて運用できます。
ただし、FE・BEを分離すればすべての問題が解決するとは限りません。ネットワーク環境、NASやサーバー、テーブル設計、クエリ、リンクテーブル、VBA、同時更新処理などが原因となっている場合もあります。
そのため弊社では、Accessファイルだけを見るのではなく、実際の利用人数やネットワーク、データの配置場所などを含めて調査しています。
NASを利用している場合はネットワーク環境も確認します
今回の事例ではNAS上にAccessファイルが配置されていましたが、「NASを利用しているから必ず問題が発生する」という意味ではありません。
Accessの動作には、ファイルの配置方法だけでなく、ネットワーク環境やバックエンドDBの構成、アプリケーション側の設計なども関係します。
実際に別の事例では、NAS上にAccessのバックエンドDBを配置していた環境で、入力処理の遅延やエラーが発生していました。この事例では、NASからWindows ServerへバックエンドDBの配置先を変更するなどの対応を行い、遅く感じていた処理がほぼ遅延を感じない状態まで改善しています。
AccessをNASで使うと遅い?NASからWindows Serverへ変更して改善した事例
Accessが遅い場合は別の原因も考えられます
複数人での利用では、エラーやクラッシュだけでなく、「検索が遅い」「入力に時間がかかる」といったパフォーマンスの問題が発生することもあります。
Accessが遅くなる原因には、データ量、テーブルやクエリの設計、インデックス、ネットワーク、バックエンドDBなど、さまざまな要因があります。
Accessが遅くなる主な原因と改善方法については、次の記事で詳しく解説しています。
Accessが遅い原因は?検索時間を30秒→6秒に改善した事例と対処方法
Accessの複数人利用でお困りの場合はご相談ください
Accessを複数人で利用していて、次のような問題が発生していませんか?
- 複数人で使うとAccessが落ちる
- エラーが頻繁に発生する
- 共有フォルダ上のAccessを全員で開いている
- Accessの動作が不安定
- フロントエンドとバックエンドを分離したい
- NAS上のAccessが遅い
- 利用人数が増えて現在の構成に不安がある
Accessのトラブルは、Accessファイルだけでなく、データベース構成やネットワーク、サーバーなどが関係している場合があります。
弊社では、現在使用しているAccessシステムを確認し、原因の調査から改修まで対応しています。
よくある質問
Q. Accessは複数人で同時に使えますか?
はい、Accessは複数人で利用できます。ただし、安定した運用のためには、利用人数やシステムの構成に合わせてフロントエンドとバックエンドを分離するなどの設計を検討することが重要です。
Q. 共有フォルダにAccessファイルを置いて複数人で使っても大丈夫ですか?
構成や使い方によって異なります。今回の事例では、NASの共有フォルダ上に配置した1つのAccessファイルを3~4人で利用しており、エラーやクラッシュが発生していました。フロントエンドとバックエンドを分離したことで安定稼働するようになりました。
Q. Accessのフロントエンドとバックエンドとは何ですか?
フロントエンドはフォーム、レポート、クエリ、VBAなど、利用者が操作するアプリケーション部分です。バックエンドは、業務データを保存するテーブル部分です。
Q. フロントエンドとバックエンドを分離すると必ず安定しますか?
必ず解決するとは限りません。ネットワーク、テーブル設計、クエリ、VBA、リンクテーブル、同時更新処理など、別の原因が存在する場合もあります。
今回の事例では、単一のAccessファイルを複数人で利用していた構成を見直し、フロントエンドとバックエンドを分離することで安定稼働するようになりました。
Q. Accessを何人まで同時に利用できますか?
「何人までなら必ず問題なく使える」と、利用人数だけで判断することはできません。
データ量、処理内容、ネットワーク環境、バックエンドDB、アプリケーションの設計などによって、同じ利用人数でも動作状況は異なります。
利用人数が増えて動作が遅くなったり、エラーが増えたりしている場合は、現在のシステム構成を確認することをおすすめします。
Q. SQL Serverへ移行した方がよいのでしょうか?
必ずしもSQL Serverへの移行が必要とは限りません。Accessの構成を見直すことで改善できるケースもあります。
一方で、データ量、同時利用人数、処理内容、今後のシステム拡張などによっては、SQL Serverなどのデータベースをバックエンドとして利用する方法も検討できます。
まとめ
Accessは複数人で利用できますが、Accessファイルの構成や配置方法によっては、エラーやクラッシュなどの問題が発生することがあります。
今回の事例では、NASの共有フォルダ上に置かれた1つのAccessファイルを3~4人で利用しており、エラーやクラッシュが発生していました。
そこでフロントエンドとバックエンドを分離した結果、エラーやクラッシュが解消し、安定して稼働するようになりました。
Accessを複数人で利用していて不具合が発生している場合、単純にパソコンやサーバーの性能だけを疑うのではなく、Accessの構成そのものを確認することも重要です。


