Accessの排他制御の設定をお探しですね。

広告

複数人でAccessを使うなら絶対知っておきたい!データベース分割と安全な共有方法

業務の効率化のために Microsoft Access(アクセス)を導入して、最初は順調にデータ管理ができていたのに、使う人が増えたとたん「急に動作が重くなった」「データが勝手に変わってる!」「最悪、ファイルが壊れて開けなくなった…」なんてトラブルに見舞われた経験、ありませんか?

実はこれ、Accessの仕組みをちゃんと理解せずに、ただのファイル共有として使ってしまうと必ずと言っていいほど起こる問題なんです。

この記事では、複数人でAccessを安全に、しかも快適に使うための「データベース分割」のやり方と、データを守るための「排他制御(レコードロック)」の設定について、できるだけわかりやすく解説していきます。

正しく設定すれば、Accessは複数人でも十分安定して使える便利なツールになりますよ。

1. なぜAccessファイルをそのままサーバーで共有しちゃダメなの?

Accessを複数人で使おうとするとき、やってしまいがちなのが「1つのAccessファイル(.accdb)をサーバーや共有フォルダに置いて、みんなでそのショートカットから直接開く」という方法です。

一見、手軽で良さそうに見えますよね。

でも実は、これが一番やってはいけない使い方なんです。

データが壊れる危険性がめちゃくちゃ高くて、マイクロソフトも公式に「やめてください」と言っています。

なぜダメなのか?その理由

AccessはExcelとは違って、ファイルを開いたパソコン側でデータの処理をする仕組みになっています。

1つのファイルをサーバーに置いてみんなで共有すると、全員のパソコンとサーバーの間で、常に大量のデータ(画面のデザイン情報やプログラムの処理結果など全部)がやり取りされることになります。

その結果、何が起こるかというと:

– ネットワークに負荷がかかって動作が激遅になる
– 誰かのパソコンがフリーズしたり、ネットワークが一瞬切れたりした瞬間に、データベース全体が壊れて開けなくなる「巻き添えクラッシュ」が発生する

怖いですよね。

解決策は「データベースの分割」

この問題を解決する唯一の正解が「データベースの分割」です。

これは、Accessファイルを次の2つに物理的に分けてしまう方法です:

1. **フロントエンド**:画面やプログラムが入ったファイル(各自のパソコンに置く)
2. **バックエンド**:データだけが入ったファイル(サーバーに置く)

こうすることで、ネットワークを流れるのは純粋なデータだけになって、負荷が激減します。

しかも、万が一誰かのパソコンがクラッシュしても、サーバー上のデータは守られるので安心です。

2. 初心者でも失敗しない「データベース分割」の手順

それでは、実際にAccessデータベースを分割する手順を見ていきましょう。

Accessに搭載されているウィザード機能を使えば、数分で完了します。

ただし、念のため作業前には必ず元のAccessファイルをコピーしてバックアップを取っておいてくださいね。

手順1:データベース分割ツールを起動

1. 分割したいAccessファイルを開く
2. 上のリボンの「データベースツール」タブをクリック
3. 「データの移動」グループにある「Accessデータベース」ボタンをクリック
4. 「データベース分割ツール」という画面が出てくるので、「データベースの分割」ボタンを押す

手順2:バックエンドファイルの保存場所を指定

次に、データ部分(バックエンドファイル)をどこに保存するか聞かれます。

ここでは、社内のメンバーがアクセスできる「共有サーバー(共有フォルダ)」の場所を指定してください。

ファイル名は通常、元のファイル名の末尾に「_be」などが自動で付きます。

確認して「分割」ボタンを押せば完了です。

成功すると「データベースが分割されました」というメッセージが表示されます。

手順3:結果を確認

分割が終わると、元のファイルからはテーブルの実体が消えて、代わりに「リンクテーブル」(アイコンに小さな矢印が付いた状態)が表示されるようになります。

これが「フロントエンド」です。

一方、サーバー上に作成されたファイルにはテーブルだけが入っていて、これが「バックエンド」になります。

手順4:運用体制を整える

最後に、実際に使えるようにします。

– **サーバー上のバックエンドファイル**:そのまま動かさない
– **手元のフロントエンドファイル**:コピーして、使うメンバー全員のパソコン(デスクトップなど)に配る

利用者は自分のパソコンにあるフロントエンドを開いて作業します。

これで、全員が自分のパソコン上のプログラムを使いながら、データだけはサーバー上の同じ場所を参照・更新するという、安全なマルチユーザー環境の完成です!

3. データの衝突を防ぐ「排他制御(レコードロック)」の設定

データベース分割をしても、複数のユーザーが「同時に全く同じデータ(レコード)」を編集しようとした場合には、データの競合が起きてしまいます。

これを制御するのが「排他制御(ロック設定)」です。

デフォルトのままでも動きますが、業務の内容に合わせて設定を確認しておくと、トラブルを避けられます。

設定方法

1. Accessの「ファイル」タブから「オプション」を開く
2. 「クライアントの設定」を選択
3. 「詳細設定」セクションの中にある「既定の開くモード」と「既定のレコードロック」を確認

推奨設定

複数人で使う場合は、以下のように設定してください:

**既定の開くモード:「共有」を選択**

「排他」になっていると、誰か一人が開いている間、他の人は誰もファイルを開けなくなってしまいます。

必ず「共有」にしておきましょう。

**既定のレコードロック:「ロックしない」または「編集済みレコード」**

どちらを選ぶかは、業務の性質によります:

**「ロックしない」(おすすめ)**
– 最後に保存した人のデータが上書きされる
– 競合が起きたら、後から保存しようとした人に「データが変更されています」という警告が出て、どうするか選べる
– 動作が一番軽くてスムーズ

**「編集済みレコード」**
– 誰かが編集を始めた瞬間にそのレコードをロックして、他の人が編集できないようにする
– 厳密な管理ができるけど、誰かが編集中のまま席を外すと、他の人がそのデータをいつまでも触れないというデメリットがある

基本的には「ロックしない」設定で運用して、Accessの標準機能である競合メッセージに任せるのが、システムへの負荷も少なくておすすめです。

もし、重要な台帳など厳密に同時編集をブロックしたいものがある場合は、そのフォームのプロパティで個別に「レコードロック」をかける、という運用がスマートでしょう。

4. 運用中に気をつけたい「やってはいけないこと」

複数人でAccessを使う環境が整った後も、安定して動かし続けるためにはいくつか守るべきルールがあります。

絶対NG!クラウド同期フォルダには置かないで

特に最近増えているトラブルが、OneDriveやDropbox、Googleドライブなどの「同期型クラウドフォルダ」にAccessファイルを置いて共有してしまうケースです。

同期型のクラウドストレージは、ファイルの変更を検知して自動的にインターネット上にアップロード・同期する仕組みを持っています。

でも、Accessはファイルを開いている間、頻繁に内部データを書き換えるので、クラウド側の同期処理とAccessの保存処理が衝突して、非常に高い確率で次のようなトラブルが起きます:

– データベースが壊れる
– 「競合コピー」という別ファイルが大量に生成される

**Accessのバックエンドファイルは、必ず社内LAN上のファイルサーバー(Windows ServerやNAS)に置いて、クラウド同期フォルダには絶対に置かないでください。

**

定期的なメンテナンスも大切

Accessはデータの追加・削除を繰り返すと、ファイル内部に無駄な領域が増えて、動作が重くなったり壊れやすくなったりします。

**月に1回程度は「最適化/修復」を実行しましょう。

**

やり方は簡単:

1. 全員が使っていない時間帯(業務終了後など)にバックエンドファイルをAccessで開く
2. 「データベースの最適化/修復」を実行

これだけで、ファイルがスッキリして快適に動くようになります。

サーバーの場所が変わったら

サーバーの買い替えなどでバックエンドファイルの場所が変わった場合は、フロントエンド側の「リンクテーブルマネージャー」機能を使います。

すべてのリンクテーブルを選択して更新をかければ、新しい参照先に切り替わります。

まとめ

これらの運用ルールをきちんと守れば、Accessは高価なデータベースシステムを導入しなくても、長期間にわたってチームの業務をしっかり支えてくれる強力なツールになります。

ぜひこの記事を参考に、安全で快適なAccess環境を作ってくださいね!

広告