[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にブックマークしておきました。

http://del.icio.us/da_k/msde

カテゴリ: