中小企業が自社で使うための業務システムをゼロからシステム開発会社に依頼して開発するケースは多くないと思います。コスト面や的確な発注が出せるかどうかも難しいからです。

そうはいっても、自分たちでやれるところまでやりたいとお考えのケースは多いと思います。システムを自分たちで作ろうとする際に、何の開発ツールやサービスを使わないのは難しい。いくつかある選択肢の中で、歴史もあってどの会社でも使われている頻度が高いのが「FileMaker」か「Microsoft Access(以下 Access)」です。

この2つのどちらかを選ばねばならない場合、スクリプト開発が出来るならFileMaker、そうでないならAccess。ただ、Accessは以下の制約を理解して使ってくれになります。当社がそう考える根拠について、ご案内します。

Accessでは不特定多数のユーザーが利用するアプリケーションが極めて作りにくい

常時3人以上がネットワーク共有の上に同時に使う前提なら、Accessはリスクが高いです。理由は以下のとおりです。

  1. 最大ファイル容量が2GBしかない
  2. リンクテーブルなどを使えば分割はできるが、遅くなることがある
  3. 難しいことをやろうとするとVBAでクエリを投げるしかなく、ハードルが高くなる
  4. クライアントの設定が面倒
  5. バックアップ / リストアの仕組みがない

Accessはmdbという拡張子のファイルでデータを保存しますが、最大ファイル容量が2GBと決まっています。上限がこれです。Microsoftとしては、本格的な業務アプリケーションを作るのであればAzureのようなクラウドサービスやSQL Serverを使って欲しいというメッセージでしょう。この上限が緩和されることは極めて考えにくいです。

Accessはデータベースの分割が可能で、フォームをデザインしたmdbファイルと、データを保存するだけのmdbファイルの2つに分けることができます。リンクテーブルと言って、mdbファイルではなく外部サーバにあるデータベースに接続し、データを読み書きすることも可能です。

それならそれで良いじゃんという話なのですが、リンクテーブルという仕組みは「サーバーサイドのデータをクライアントに取り込んで、クライアント側でデータ操作の処理を行う」仕組みなので、転送するデータの容量やクライアント・マシンのスペックにパフォーマンスが左右されてしまいます。なので、リンクテーブルも万能ではありません。

リンクテーブルを使わずに外部のデータベースに対して直接データ操作を依頼する「SQLパススルー」という仕組みもありますが、ほとんどプログラミングと同じになります。コードを書けば何でも出来ますが、コードを書くことが目的ではありません。

自分たちで作ろうとする=プログラミングを頑張ってやる、ではないでしょう。本末転倒です。

Accessを複数人で共有する場合は、共有するクライアントマシンにはODBCという外部接続設定が必要になる場合があります。Webアプリケーションみたいに、ブラウザを開いてアドレスを入れるだけ、というわけにもいかないのも面倒です。

忘れてはいけないバックアップとリストア

Accessにはバックアップを行う仕組みが存在しません。「データベースファイルをコピーして、名前を付けて保存する」以外の方法がありません。それを毎日のように行うのは、結構、いや相当だるいです。リンクテーブルを使って複数のMDBが存在するなら、それら全てが対象になります。リストアはバックアップから復帰する仕組みのことです。Accessの場合は、ファイルを戻すだけ。とても原始的です。

FileMakerは、FileMakerServerを買うことで自動でバックアップを取ることが出来ます。5分おきにバックアップを取得する機能を使えば、ダウンした5分前の状態に戻ることが可能です。スナップショットと一般的に言われる機能です。アプリは再インストールすればOKですが、データは再インストールすることは出来ないので、適切にバックアップを行う運用が必要です。

Windows Updateの影響をまれに受けてしまい、ファイルが破損することがある

これは最近あった例ですが、Windows Updateを適用したことで、MDBファイルが開けなくなったという不具合が発生しました。Office365版Accessおよび、Access2019での『クエリ’’は破損しています』を回避する方法にその内容が書かれています。

この不具合はMicrosoftがアップデートのプログラムを提供したことで収まりましたが、1日〜2日のタイムラグがありました。こういう突発的なエラーが起こりえます。

FileMakerはスクリプトの習熟に時間がかかる

FileMakerは「スクリプト」と呼ばれる様々なプログラムが用意されていますが、Excelの関数のように直感的ではなく、マニュアルを見たら明日から使いこなせるようなものでもありません。これを使いこなすには、メンター(先生)のサポートが絶対に必要です。プログラミング歴10年を超える私でも、いきなり使えるようにはなりませんでした。癖が強いのです。

普通のプログラムのように「def xxx(self)..」みたいな英語の羅列ではありませんが、これらのスクリプトを駆使しないとAccessを超えるアプリケーションを作るのは難しいです。アプリケーションの作成が出来る幅は最も広いですが、覚えなくてはならないこと、FileMakerの開発手法への理解など、本格的な学習が必要です。

また、わかりやすい弱点は価格面です。FileMakerはサーバも含めると年間10万円ほどかかります。毎年です。Office365にはAccessがあり、年間12,000円ぐらいなので、Accessのほうが安いです。FileMakerは使うスキルが有れば本格的なアプリケーションを作れますが、一朝一夕にはいきません。

当社はkintoneをプッシュしています

手軽さはAccessに軍配がありますが「行きはよいよい帰りは怖い」です。当社は非プログラマへの受け皿として機能しつつ、不特定多数のユーザーが安全に利用でき、最もバランスが良いkintoneプラットフォームをまずは活用する、使い倒すことが良いと考えています。

FileMakerやAccessを頭から否定するわけではないですが、継続的なメンテナンス、IT担当者の退職リスク、データ保護の観点など、不特定多数の人が使っても安定稼働するアプリケーションを作るコストを鑑みると、まずはkintoneを使いこなせるようになるのが最もコスパの良い選択肢だと思っています。