第5回 ACCESSを「ファイル共有」で使用する場合の注意事項

第5回 ACCESSを「ファイル共有」で使用する場合の注意事項

Accessを使用して、データベースが使えるようになると、複数台のパソコンでデータを共有して使いたくなります。
ただ、いきなり「SQL Server」のような「クライアント/サーバー型」のシステムを構築するわけにも行かず、小人数で手軽に使用できないか? となるとこの方法がうかんできますが、問題も多いのです。

そこで、「共有方法」と「共有する場合の注意事項」について掲載します。
Accessの「mdb」は、「壊れます」、増してファイル共有で使用すると益々その確率も高くなりますので、これから記載する知識は、最低でも覚えておいても損はないでしょう。


Sponsored Links




1.Accessのデータ共有方法

通常、Accessでデータベースを作成すると、データ(表)、フォーム、レポート等を1つのmdbに格納しますが、これをテーブル(データ)のみ、もう一つのmdbに独立して格納します。

このようにデータmdbとアプリケーション(処理)mdbに分けておけば、データを何処か1カ所のPCに、アプリmdbをそれぞれ使用するPCに(Access Runtimeをインストール後)インストールすれば共有できます。

補足
(1)この分割する機能は、Accessにあります。
メニューバーの「ツール」の「データベースユーティリティ」の「データベース分割ツール」で実施します。

(2)分割するとデータとリンクを取るための処理をデータにアクセスして使う前に、実施する必要があります(メニューバーの「ツール」の「データベースユーティリティ」の「リンクテーブルマネージャー」で実施します)。
尚、ランタイム版のアクセスをインストールしたPCでは、上記の「データベースユーティリティ」は使用できませんので、あくまで「ACCESSの正規版の入ったPC」で実施して、その「mdb」を各PCにCOPYして配布します。

「ACCESSのランタイム版」は、
作った「データベースソフトを動かすことはできます」が、開発作業は一切できません。

2.ACCESS(Jet データベース)を共有する場合の注意事項

1)jetデータベースファイルのファイル共有制限(Windowsのバージョン)。 

Windows 95、 98、Me のファイル共有に格納されている Microsoft Jet データベース ファイルを 「NT クライアント」、「2000 クライアント」と共有することは推奨していません。

Windows 95、 98、 Me を実行するコンピュータと Windows NT、2000 を実行するコンピュータとが混在する環境で他のネットワーク ユーザーとデータベースを共有する場合は、Opportunistic Locking を無効にしたうえで、Windows NT 、2000 を実行するサーバーにデータベース ファイルを格納して共有することを推奨しています。

Windows 95、98、 Me のファイル共有に格納されているファイルを、Windows NT、2000 を実行するクライアント コンピュータと共有している場合、データベースの破損が発生することがあります。この問題は、Windows NT 、2000 を実行するクライアント コンピュータで 「Opportunistic Locking」 が無効になっている場合でも発生することがあります。

2)ファイル共有で使用するデータを格納するPCについて(XP等でも良いが、なるべくサーバーマシン)

Jet データベース ファイルを使用するユーザーの数と要求の数に対応できるファイル サーバーを使用してください。また、このファイル サーバーには 、ドメイン コントローラ、Exchange サーバー、SQL Server など他の役割を与えたサーバーを避けて下さい。。

3)ネットワーク接続を確認する

ネットワークが安定していてること、ファイル サーバーへのネットワーク接続が安定していることを確認します。 WAN、モデム接続、FTP など、信頼性の低いネットワーク転送方式を経由して Jetエンジン を使用することは推奨しません。
Access Jet はファイル共有型のデータベース システムですので、信頼性の低いネットワーク転送方式を使用するとクライアント接続が遮断されることが多くなり、その結果データベースが破損する可能性が高くなります。

4)各クライアントからの接続数を最小限にする

Microsoft Jet データベースへの接続を各クライアントが 1 つずつ使用する設計にすることを推奨しています。
10台で共有していても、1つのデータmdbを同時に使用するのは2~3、4台で使いましょう。

5)Microsoft Jet データベースへのアクセスに ADO を使用する

ADO から Microsoft Jet データベースにアクセスする場合、Microsoft Access ODBC ドライバではなく、Microsoft Jet OLE DB プロバイダを使用することを推奨します。

最後に
上記、制限事項1)~3)くらいまでを無視して使用すると、データを格納した「mdb」が頻繁に壊れます。
自分でバックアップを毎日取っていればOKでしょうが、こんなのシステムとは言えません。

一人、二人で使用するならサーバーマシンは必要ないと思いますが、10人くらいで使用する場合は安くてもかまいませんが、Windowsサーバーマシンを使用することを推奨めます。

加筆
mdeファイル作成時のエラーについて
ACCESSデータベースの「mdb」を「mde」ファイルに変換して配布する場合があります。
「mde」に変換すると、VB等のモジュールが変更できなくなり、改造を防ぐには良い手段ですが、Access データベースを「mde」 ファイルとして保存しようとすると、次のエラー メッセージが表示され、MDE ファイルを作成することができない場合があります。
「MDE データベースを作成できませんでした。」

Table IDの詳細
mdb ファイルを mde 形式で変換して保存する場合、Jet データベース エンジンは Table ID を使用しますが、Table ID の数を正確に見積もることはできませ。基本的に各モジュールごとに1個のTable ID を使用します。
VBAのmdeのプロジェクト、およびデータベースのプロジェクトは、いずれもこのTable IDを必要とします。 その為、データベースにフォームが 500 以上含まれ、かつ各フォームの “HasModule/コード保持” プロパティが [Yes/はい] に設定されている場合は、データベースを MDE 形式で保存するときに Table ID が 1000 個必要になります。

原因
Jet データベース エンジン 4.0 では、最大 2048 個の Table ID を一度に開くことができます。
多数のオブジェクトを持つデータベースを mde 形式で保存すると、その処理中にこの制限値を越えることがあります。

回避策
できる限りフォームやレポート上のオブジェクトを減らして軽くするか、データベースの中のオブジェクトの数を減らす。

関連記事
マイクロソフト、「Access」の便利な機能を使って、業務アプリケーションを作成して活用する。

Access 2013 の新機能とAccess 2013 で廃止、変更された機能とバージョンアップの必要性について

第1回 ACCESS(アクセス)データベース作成ソフトについて
第2回 ACCESS(アクセス)データベース作成ソフトについて
第3回 ACCESS 2007の情報
第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」
第5回 ACCESSを「ファイル共有」で使用する場合の注意事項
第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
第9回 ACCESS 2010の情報
第10回 Access2000(mdb)からAccess2010(accdb)に変換する

Sponsored Links




コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*