[Access]アクセスで社内共有データベースを作るときの注意点3つ
とある中小企業で、Accessを使った業務用DBシステムを作ることになりました。
その会社では現状、社内の共有フォルダにExcelでいろんな管理表ファイルが散在していて、それらがVlookupで紐づいて連携しています。
それらをAccessベースに移植するのが私の仕事です。
今まさに試行錯誤しながら作ってる途中です。
以下、これまでわかったこと。
1 Access(MDBファイル)は、ファイル共有で使うとぶっ壊れる。
いろんなサイトで言われてますが、これは本当です。
実際、私もすでに2回ほど壊れました。(><)
一回目は、ファイルが突然開かなくなりました。
二回目は、アクセス権がありませんみたいなエラーが出て、やはりファイルが開けなくなりました。
幸いバックアップをこまめに取ってたのですぐ復旧できました。
Access(MDBファイル)は、スタンドアロン(つまりPC一台の中だけで)の環境で使うためにできていて、ネットワーク共有には向いていないそうですね。
2 テーブルとそれ以外(クエリ、フォーム、レポート)を別ファイルに分離すべし
テーブルだけを格納したMDBファイルを共有フォルダに置きます。(仮にa.mdbファイルとする)
- クエリ、フォーム、レポートを格納したMDBファイルを作ります。(仮にb.mdbファイルとする)
- b.mdbから、リンクテーブルでa.mdbのテーブルにリンクします。
- b.mdbを各ユーザに配布して、各自ローカルPCに保存して使ってもらいます。
こうすると、無駄なネットワークのトラフィックが減り、MDBファイルが安定するそうです。
ファイルの分割は、Accessのメニューで簡単にできます。
ツール > データベースユーティリティ > データベース分割ツール
もちろん手動でもできます。手動でやる場合は、
- 空のmdbファイルを新規作成(Aファイルとする。これはテーブル専用。)
- 元ファイルからAファイルにテーブルを全てコピー
- 元ファイルのテーブルを全て削除
- 元ファイルでリンクテーブルを作成し、Aファイルのテーブルへのリンクを作る
私はまさに今週、この手法でMDBファイルを分割してみました。
今のところ特にトラブルなくサクサク動いています。
あと1~2週間、このまま様子見しようと思います。
3 MSDEを使うと、無料でクラアント/サーバ型DBシステムを作れるらしい。
(ただしVistaで動かない)
MSDEとはSQL Serverの無料版です。
Googleでちょっと調べると、「MSDEは同時接続5人まで」と書かれているサイトがありますが、これは誤解だそうです。
MSDEとSQL Serverはパフォーマンスの差はほとんどなく、100人以上のユーザがMSDEを使っても動くらしいですね。
実際、ユーザが20人くらいいても、全く同時に5件アクセスが来る確立はかなり低いそうです。
例えて言うなら、東京都の人口が1千万人いても、全員が同時に電車に乗ることはないのと同じでしょうか。
参考:
その他、参考になったサイトをdel.icio.usにブックマークしておきました。