第5回は、ACCESSを「ファイル共有」で使用する場合の注意事項と共有方法についてです。
Accessを使用して、データベースが使えるようになると、どうしても、複数台のパソコンでデータを共有して使いたくなります。
「EXCEL」ファイルは、誰かがファイルを開いていると、他の人は更新ができませんが、Accessは可能です。ただ、いきなり「Windowsサーバーマシン」を購入して、「SQL Server」などのデータベースシステムをインストールして「クライアント/サーバー型」のシステムを構築するわけにも行かず、小人数で手軽に運用できる方法はないのか?
となると、ある方法が浮かんできますが、運用方法によっては問題も多いのです。
通常は、ACCESSでシステムを作るとデータと処理プログラムは、一緒に格納されてしまいますが、複数人で運用する場合は、プログラム(オブジェクト)からデータ(テーブル)のみを分割して別ファイルに出来るのです。
そこで、データファイル「共有方法」と「共有する場合の注意事項」について掲載します。
躊躇わずに言います。
運用方法によってですが、Accessの「.mdb」、「.accdb」は、結構、壊れます。
壊れる原因の殆どは、安定した有線(LANケーブルで繋がれた)のネットワーク上のファイルサーバーなどにデータを格納して置かないと、多く障害、不具合が発生します。 更に無線LANのネットワークは、もってのほかで、ネットワークが切断される場合が頻発しますので、システムが不安定になり、結構、データベースが壊れます。
<壊れる原因となる使い方について>
1)他の人が使用中のパソコンにデータを格納して、ファイル共有を利用して、運用すべきでは有りません。
例えば、性能の低いパソコン上のHDDに、誰かが使っている状態で、分割したデータを格納して共有する場合、パソコンのリソースが食われて、データベースとしての反応が悪くなり、データのやり取りで不具合が発生しやすくなります。 何故なら、作業が終了したからと言って、他の人がデータにアクセスしている最中に、パソコンの電源を勝手に切られたりしたら、当たり前ですがアウトでしょう。
2)「無線LAN」経由のローカルエリアのネットワーク上で運用する場合
「無線LAN」は、有線LANに比べて、接続・切断が発生して、通信が不安定になる。
<小規模で運用するのに一番いい方法は>
1)運用・管理やコスト的などの面で、「Windowsサーバーマシン」を購入して運用するのは無理だとしても、最低でも、有線ネットワーク(社内LAN)上に配置した、コスト的に負担の少ない、2,3万円くらいのストレージデバイス(NASなどの装置)を設置して運用するのがベストでしょう。
—関連記事—
・小規模企業の為の社内LANを構築して、業務で活用する方法について
・テックウインドが、PCIe拡張スロットを備えたホーム/SOHO向け2ベイNAS 「TS-251B」の販売を開始
・ロジテックが、 内蔵SSD 480GB 変換キット「LMD-SSKU3」シリーズ(HDDケース・データ移行ソフト付)を発売
使っているパソコンにデータを格納して、それを共有して運用すれば、トラブルは何時起きても、おかしくない状態に陥ってしまうでしょう。増してや、ファイル共有で使用すると益々その確率も高くなりますので、これから記載する知識は、運用する上で最低でも覚えておいても損はないでしょう。
Sponsored Links
1.Accessのデータ共有方法
データベースのデータを分割すると、
■データ テーブルは、バックエンド データベースと呼ばれる、ネットワーク サーバー上のデータベース ファイルに格納されます。
■他のデータベース オブジェクト (クエリ、フォーム、レポートなど) は、フロントエンド データベースと呼ばれる、別のデータベース ファイルに格納されます。
分かりやすく言えば、
Accessでデータベースを作成すると、データ(表)、フォーム、レポート等を1つのmdbまたは、accdbファイルに格納しますが、これをテーブル(データ)のみのファイルと、もう一つ他のファイル等 (クエリ、フォーム、レポートなど) を格納したmdbまたは、accdbファイルに独立分離させることが可能です。
▮このようにデータmdbとアプリケーション(処理)mdbに分けておけば、
・バックエンド データベース(データmdb)を何処か1箇所のPC又はストレージデバイスに、
・フロントエンド データベース(アプリmdb)をそれぞれ使用するPCに(Access Runtimeをインストール後)格納すれば、Accessが動作して共有することが可能になります。
1)分割する機能は、Accessにあります。
<注意事項>
Accessには、正規版とランタイム版(無料)がありますので注意してください。
「ACCESSのランタイム版」は、
作った「データベースソフトを動かすことはできます」が、開発作業などを行う為のツールは一切含まれていません。もちろん、テーブルリンク処理をする機能も付いていません。
尚、ランタイム版のアクセスをインストールしたPCでは、上記の「データベースユーティリティ」は使用できませんので、あくまで「ACCESSの正規版の入ったPC」で実施して、その「mdb」を各PCにCOPYして配布します。
<分割方法>
(1)分割
正規版のAccessを開いて、メニューバーの「データベースツール」の「Accessデータベース」の「データベース分割ツール」で実施します。
(2)テーブルリンク処理
分割すると、プログラムの格納側とデータとリンクを取るための処理を実施する必要があります。
・メニューバーの「ツール」の「データベースユーティリティ」の「リンクテーブルマネージャー」
又は、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」はファイル共有型のデータベース システムですので、信頼性の低いネットワーク転送方式を使用するとクライアント接続が遮断されることが多くなり、その結果データベースが破損する可能性が高くなります。
ですので、無線LANではなく、有線LANケーブルで繋いだネットワークで使用するのが無難です。
4)各クライアントからの接続数を最小限にする
■Microsoft Jet データベースへの接続を各クライアントが 1 つずつ使用する設計にすることを推奨しています。
■10台で共有していても、1つのデータmdbを同時に使用するのは2~3、4台で使いましょう。
5)Microsoft Jet データベースへのアクセスに ADO を使用する
■ADO (Microsoft ActiveX Data Objects)から 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 形式で保存すると、その処理中にこの制限値を越えることがあります。
<回避策>
できる限りフォームやレポート上のオブジェクトを減らして軽くするか、データベースの中のオブジェクトの数を減らす。ここ処理は、結構面倒で難しいので、やった事はありません。
・Web で共有する Access データベースを作成する Microsoftサイト
—関連記事—
・マイクロソフト、「Access」の便利な機能を使って、業務アプリケーションを作成して活用する。
・小規模企業の為の社内LANを構築して、業務で活用する方法について
・32Bit版から、64Bit版の「Windows 10」にパソコンごと入れ替えた時に、Office365(Office2016)のAccess2016を使用する場合の注意点。
・「Office 2019」に入っている データベース作成 Access 2019 の新機能について
・Access 2013 の新機能とAccess 2013 で廃止、変更された機能とバージョンアップの必要性について
・Microsoft社のデータベース作成ソフト「Accessの勧めと言いたいけれど。。。」
・先月末、ある日、突然、Windows10で使用している「Access 2016」で動かしているアプリケーションが動かなくなるです。「Access 2010」でも起こっている問題でもあります。
<Accessについて 連載記事>
・第1回 ACCESS(アクセス)データベース作成ソフトを使ってみたいと思っている方へ
・第2回 Accessのバージョン、コンポーネンツ、EXCELからの移行、配布形態、拡張性について
・第3回 ACCESS 2007の情報
・第4回 ACCESS トラブル対処の情報1「mdbが壊れてしまった時」
・第6回 ACCESS トラブル対処の情報2 「メモリ不足」エラーについて
・第7回 ACCESSで Jet 4.0 データベースの動作環境を最適に保つ方法
・第8回 Access 2000とMSDEを利用してクライアント/サーバーシステムを構築する
・第9回 ACCESS 2010の情報
・第10回 Access2000(mdb)からAccess2010(accdb)に変換する
<Accessデータベース作成講座>
・第1回 ACCESS(アクセス)データベース作成ソフトについて
・第2回 Accessで、「得意先マスター保守」処理画面を作成してみる。
・第3回 Accessで、「得意先マスター保守」処理画面を作成してみる。
・第4回 マイクロソフト ACCESS(アクセス)でデータベースを作成 検索・抽出処理
・第5回 Access2010でパスワード管理データベースを作成してみよう。
・第6回 EXCELで作成した住所録をAccessに取り込んではがき宛名印刷をしてみる。
・第7回 郵便局の郵便番号簿データをダウンロードして、郵便番号・住所検索用のアプリをAccessで作成してみる。
・第8回 マイクロソフト ACCESSでデータベースを作成する時のプログラムソースのコーディングについて
Sponsored Links