お世話になります。
の、高橋です。
今回のコラムでは
なぜAccessのイメージが悪いのか?
について、わたしの考えや予想を記します。
経験上、Accessは、データベースの高度なシステム構築が不可能と思われているような節が見受けられます。
事実、同業者(システム屋)からでさえもそのようなご意見を伺うことがあります。
断言しますが、これらは間違いなく偏見です。
■Accessは内製システムのスタンダードである
企業内でデータベースを利用したシステムを内製する
といえば、すぐに思いつくのはMicrosoft Office Accessです。
これは、社内SEにおけるプログラミング言語(VBA)のシェアを考えれば当然です。
■偏見の理由は「Accessに触れた人間の数があまりに多い」ことにあり
正確な統計等のデータは持ち合わせていないため、予想となりますが
Accessを利用あるいは利用の検討を行った経験のある社内SEは
実に多いことでしょう。
AccessはOfficeのエディションによっては無意識にインストールされていますし
プログラムを組むにもExcelVBA(マクロ)と共通点が非常に多く、
またGUIによるクエリやフォーム、レポートオブジェクトの作成が簡単に実行できることもあって
数あるプログラミング言語の中でもAccessは群を抜いて「取っ付きやすい」ものであるためです。
しかし、AccessVBAには、AccessVBAならではの「勘所」
つまり上手にシステムを製作するための難所がいくつも存在します。
間口は広くて取っ付きやすく、スタンダードといえるほど普及しており
無意識的、消極的に選ぶ社内SEも少なくないが
他の言語同様いざ極めるとなると決して甘くない
それがAccessVBAというものです。
触れた人間があまりに多く
脱落した人間もあまりに多く
その結果、根拠無き悪評を垂れ流す人間もあまりに多い
というのが、Accessの偏見イメージにおける根本でしょう。
■Microsoftの過失も一部ある
本件については、Accessを扱い損ねた人間ばかりを責められるものでありません。
Accessには他の言語からすると珍しい制約があり、
新規社内SEの行く手を阻み脱落させる要素が多くあります。
・WindowsUpdateによる不定期のバグ発生
・バージョンやOSの互換性問題
・ファイルの2GB制限(1GBを超えるとエラーが徐々に増えてきます)
・多人数で同時アクセスするとファイルがいとも簡単に破損する
・Access自体が持つバグ(MSBARCODE.DLL問題など)
・無限ループやフリーズ時のブレークが極端に難しい
など、Accessを扱うにはこれらの要素を
うまく手作業(自ら記述するソースコード)でカバーしてやる必要があり、
この点はMicrosoftが悪いとも言えるでしょう。
■Accessで製作するシステムの勘所
せっかくなので、一部とはなりますが
Accessで上手にシステムを製作するための勘所をご紹介します。
これからトライされる方の参考になれば幸いです。
・プログラム用ファイル、データ用ファイルは必ず分ける
・マクロを使わない(AutoKeysなど一部マクロはどうしても必要ですが)
・クエリを使用する必要がある場合は、VBAにより都度削除/生成する
・バイナリフィールドを用いたテーブルを定義せず
エクスプローラによるファイル共有
(SMBやクラウドストレージなど)と組み合わせる
・データベースが大きくなりそう、
あるいは10人以上での利用を見込むのであれば
初めからSQLServerやSQLAzureなどを併用する設計にする
・ソースコードを組みすぎない(仕様を凝りすぎない)
要求仕様を本質で見極め、実装は簡素に抑える
・命令の部品化、テーブルの正規化はほどほどにしておく
・非同期処理の実装にチャレンジしようとしない
・自分の技術知識の限界をAccessの限界であると誤解しない
・WindowsOSの知識をVBAと並行して学習する
以上です。
今の時代であれば、Accessのノウハウを学習するのに書籍を求める必要はありません。
SEとしての資質と、ネット検索の環境があれば充分です。
共にAccessシステムの優れた保守者となるべく、日々努力しましょう。
本日もお疲れさまでした。
------------------------------
■直近、前後コラム案内■
<<< ひとつ新しいコラムへ進む Vol.126 - 内製システムのメリット 2022.04.15
>>> ひとつ古いコラムへ進む Vol.124 - システムとは社内外の伝言ゲームである 2022.02.25
TEL:050-5236-3104
こちらにお電話ください。
担当不在の場合は、後ほど折り返しいたします。
LINE公式アカウントでのご相談対応も承っております。
QRコードをスキャンするとLINEの友だちに追加されます。
QRコードをスキャンするには、LINEアプリのコードリーダーをご利用ください。