Access引越し中小企業のAI導入支援|古い業務システムの作り直しからAccess・オフコンの引越し 専門

コラム仕組みと実験

Accessを複数人で使うと、なぜ壊れるのですか?同時書き込みと強制終了を再現した

共有フォルダーのAccessが壊れるのは、人数が多いからというより、書き込みの途中でPCや通信が止まるからです。Microsoftは同時に使える人数の上限を255としています。Access引越しの実験では、10人が同時に書き込んでも失敗は0件でした(同じPCの中のループバックでの結果で、社内LANやWi-Fiの切断は含みません)。一方、書き込みの途中でプロセスを強制終了すると、20回中1回はファイルが開けなくなりました。(2026年10月時点)

全体の流れと費用はAccess・オフコンの引越しのページにまとめています。

要点

  • 共有フォルダーのAccessが壊れる引き金は、人数よりも、書き込みの途中でPCや通信が止まることです。
  • 1〜10人が各200回同時に書き込むと、失敗は0件でした。ただし同じPCの中のループバックでの結果で、通信の切断は含みません。
  • 書き込みの途中でプロセスを強制終了すると、20回中1回は開けなくなり、最適化/修復で開けるようになりました。
  • 使用中のファイルをコピーすると20回とも開けましたが、16回は途中までの書き込みが混ざっていました。
目次
  1. Accessを複数人で使うと、なぜ壊れるのですか?
  2. Accessは、何人まで同時に使えますか?
  3. 書き込みの途中でPCが止まると、ファイルはどうなりますか?
  4. 使っている最中にコピーしたバックアップは、使えますか?
  5. この実験は、どうすれば再現できますか?
  6. Accessを壊れにくくするには、何から手を付ければよいですか?
  7. このサイトで相談するには?
  8. よくある質問

Accessを複数人で使うと、なぜ壊れるのですか?

書き込みの途中で、PCや通信が止まるからです。共有フォルダーのAccessは、全員が1つのファイルを直接読み書きします。Microsoftのサポートページによると、データの変更が途中で中断されると、Accessはファイルに「破損」の印を付けます。

通信が切れる、電源が落ちる、強制終了する。どれも書き込みが途中で止まります。Microsoftは同じページで、共有ファイルを複数の人が同時に直接使うと、まれに壊れることがあるとも書いています。長いテキストの項目をよく編集すると、危険は少し上がります。

Access引越しが手元で試した結果、人数を増やしても壊れず、書き込みの最中で止めると壊れました。

試したこと 回数 開けなくなった 中身が食い違った
1〜10人で同時に書き込む 15回(のべ12,600件) 0回 0回
書き込みの途中でプロセスを強制終了 20回 1回 0回
書き込みの途中のファイルをコピー 20回 0回 16回

この実験には限界があります。結果はどれも、同じPCの中で共有フォルダーを開くループバック(\\localhost)でのものです。社内LAN、Wi-Fi、NASで通信が途中で切れる場面は再現していません。壊れる主な引き金はその切断なので、「10人でも失敗0件」は、通信が切れない条件での結果として読んでください。

「修復が必要」が何度も出るなら、Access・オフコンの引越しも選択肢に入ります。

Accessは、何人まで同時に使えますか?

Microsoftの「Accessの仕様」では、同時に使える人数の上限は255です(Microsoft 365・2024・2021・2019・2016)。実験では10人まで試し、書き込みの失敗は0件でした。人数で変わったのは待ち時間です。

実験では、1・2・3・5・10人が、それぞれ200回ずつ書き込みました。受注を1行足す操作と、全員が同じ1行の数を1つ増やす操作を交互にしています。各人数で3回ずつ試し、行数と数が合うかも確かめました。

同時に書き込む人数ごとの待ち時間の棒グラフ。遅いほうから5%目は1人2ミリ秒、10人120ミリ秒。いちばん長い待ちは1人19ミリ秒、10人1,559ミリ秒
図1 人数と1件の待ち時間。遅いほうから5%目の待ちは、1人の2ミリ秒から10人の120ミリ秒に伸びました。いちばん長い待ちは10人で1,559ミリ秒です。失敗した書き込みは0件でした。

ロックのエラーは、書き込みの最中には1回も返ってきませんでした。かわりに、ファイルを開く瞬間に断られることがありました。

エラー番号は-3810で、文面は「認識できないユーザーがデータベースを開けない状態、またはロックできない状態にしています」です。15回の試行で計6回起き、開き直すと入れました。

ロックファイルを説明したMicrosoftの以前のサポート記事(アーカイブ)にも、人数の注記があります。追加や更新が多いなら、25〜50人までにするのがよいという内容です。人数で壊れるというより、待ちと開けない回数が増えると考えるのが実験に合います。

書き込みの途中でPCが止まると、ファイルはどうなりますか?

多くは無事でしたが、20回中1回は開けなくなりました。3人が書き込んでいる最中に、1人だけのプロセスを止める試しを10回、全員を止める試しを10回しました。開けなくなった1回は、全員を止めたほうです。

書き込み中の強制終了と使用中のコピーを各20回試した結果のマス目の図。強制終了は19回開けて1回は修復が必要、コピーは20回とも開けたが16回は中身が食い違った
図2 強制終了とコピーの結果。強制終了では、20回中1回が「データベースの形式を認識できません」で開けませんでした。コピーは20回とも開けましたが、16回は中身が食い違いました。

開けなくなったファイルは、最適化/修復をかけると開けるようになりました。行数と数の食い違いもありませんでした。Microsoftも、失われるのは多くの場合、1人の最後の操作ぐらいだと説明しています。

止めたあとには、ロックファイル(.laccdb)が20回中19回残りました。Microsoftの以前のサポート記事によると、開いた人のコンピューター名などを記録するファイルです。最後の人が閉じると消えます。全員が閉じたのに残っていれば、誰かが途中で止まった跡か、破損の印が付いた跡と見てください。

使っている最中にコピーしたバックアップは、使えますか?

開けても、中身が食い違っていることがあります。3人が書き込んでいる最中のファイルをそのままコピーする試しを、20回しました。20回とも開けましたが、16回は足した行数と更新の回数が合いませんでした。

実験の書き込みは、1回ごとに20行を足し、同じ1行の数を1つ増やします。そろったファイルなら、足した行数は数のちょうど20倍です。コピーでは、8〜120行の差が出ました。8行のように20で割り切れない差は、1回分の書き込みが途中まで入っていたことを示します。

書き込みを止めたあとの元のファイルは、そろっていました。コピーは開けるので、食い違いに気づきにくいのが厄介です。昼休みにコピーしたファイルも、この状態でありえます。バックアップは、全員が閉じている夜や朝に取ってください。

この実験は、どうすれば再現できますか?

スクリプト1本で再現できます。1人をPythonの1プロセスに見立て、Accessのドライバー(ACE ODBC 64bit)で書き込みます。共有フォルダーは、同じPCの \\localhost\C$ をSMBで開いて代わりにしました。実験は2026年10月16日、Windows 11のPC1台で行いました。

強制終了とコピーの試しでは、2,000行を入れたファイルを使いました。3人が、2,000字の長いテキストを持つ行を20行ずつまとめて(トランザクション)足し続けます。止めるまでの時間は1〜4秒の間で毎回変えました。

使ったコード(access_concurrent.py)の要点は、次の数行です。

# 共有フォルダー上の .accdb に、N個のプロセスから同時に書き込む
path = r'\\localhost\C$\Users\Public\acc-concurrent\a.accdb'
ps = [spawn(path, w, 200, start, out[w], 'fixed') for w in range(n)]
# 3人が書き込んでいる最中に、後片付けをさせずに止める(TerminateProcess)
time.sleep(wait); ps[0].kill()
st = check_file(local)   # DAOで開けるか、行数と数がそろうか

限界もあります。同じPCの中の通信なので、本物のLANやNASより速く、途中で切れません。止め方もプロセスの強制終了だけで、ケーブルを抜く試しはしていません。

回数も各20回なので、「20回に1回壊れる」と一般化はできません。数字は「この条件ではこうなった」として読んでください。

Accessを壊れにくくするには、何から手を付ければよいですか?

まずファイルを分割し、バックアップを全員が閉じている時間に移します。Microsoftが勧める分割では、テーブルだけのバックエンドを共有フォルダーに置きます。画面や帳票のフロントエンドは、各PCに配ります。

分割しないAccessと分割したAccessの構成図。分割しない形は3台のPCが画面と帳票ごと1つのファイルを開き、分割した形は各PCの手元のコピーからテーブルだけのファイルを開く
図3 分割しない形と分割した形。分割すると、共有フォルダーに残るのはテーブルだけです。Microsoftの説明では、ネットワークを流れるのがデータだけになり、壊れても多くは手元のコピーで済みます。

分割しても、データのファイルは1つを皆で使うので、途中で止まれば壊れえます。私が仕組みを作るときは、次の順で手を打ちます。

  1. 作業の前に、全員が閉じた状態でファイルのコピーを取る
  2. 分割して、フロントエンドを各PCに配る
  3. 無線LANやスリープでつながりが切れやすいPCを、書き込む人から外す
  4. それでも月に何度も修復が要るなら、データをサーバーのデータベースかWebアプリへ移す

サーバーのデータベースに無償のSQL Server Expressを使うときは、上限を先に確かめます。SQL Server 2022のExpressでは、1つのデータベースは10GBまでです。使うメモリ(バッファープール)は1,410MBまでです。自動でバックアップを動かすSQL Server Agentもありません。

AccessからはODBCのリンクテーブルでつなぎます。一度に多くの行を読むフォームは、そのままだと開くまで待たされることがあります。毎晩のバックアップを仕掛ける人と、残っているかを確かめる人も決めておきます。

4つ目に進むときは、先に中身を数えます。手順は作った人がいないAccessの中身を数える手順に書きました。

このサイトで相談するには?

Access引越しでは、「ときどき修復が必要と出る」という段階からでも相談を受けています。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。

準備は要りません。無料で相談するからお送りください。

よくある質問

「修復が必要」と出たら、まず何をすればよいですか?
先にファイルのコピーを取り、全員に閉じてもらってから[データベースの最適化/修復]をかけます。実験で開けなくなった1回も、最適化/修復で開けるようになりました。
5〜10人を超えると壊れやすいというのは本当ですか?
実験では確かめられませんでした。10人が同時に書き込んでも失敗は0件でした。ただし同じPCの中のループバックでの結果で、通信の切断は含みません。Microsoftの以前の記事は、追加や更新が多いなら25〜50人までを目安にしています。
分割すれば、もう壊れなくなりますか?
いいえ。データのファイルは共有のままです。Microsoftは、壊れても多くは各自のフロントエンドのコピーで済むと説明しています。
ファイルのバックアップは、いつ取ればよいですか?
全員が閉じている時間に取ります。実験では、使用中にコピーした20回のうち16回に、途中までの書き込みが混ざっていました。

この数字の出し方

この記事の自前の数字は、次の見本・条件・回数で出しました。主宰が確かめ、更新日は2026年10月17日です。スクリプトの名前から、同じ手順を自分のファイルで再現できます。

  • Access引越しの実験(2026年10月16日、Windows 11・ACE ODBC 64bit・SMBループバック。同時書き込み15回、強制終了20回、使用中のコピー20回)。scripts/figs/access_concurrent.py

出典

  1. Microsoft サポート「Access specifications」(同時ユーザー数の上限255、データベースの上限2GB。Microsoft 365・2024・2021・2019・2016)(2026年10月16日確認)
  2. Microsoft サポート「Compact and repair a database」(共有ファイルの破損と、変更が中断されたときの扱い)(2026年10月16日確認)
  3. Microsoft サポート「Split an Access database」(フロントエンドとバックエンドへの分割)(2026年10月16日確認)
  4. Microsoft Learn「Editions and supported features of SQL Server 2022」(Express は1データベース10GB・メモリ1,410MB・SQL Server Agent なし)(2026年10月16日確認)
  5. Microsoft Learn「Description of Access lock files (laccdb and ldb)」(以前の版のサポート記事、アーカイブ。ms.date 2025-05-26)(2026年10月16日確認)