Microsoft Accessで作成されたフロントエンドコンポーネントをいかに継続的であり拡張性を持ったツールを開発していくか考察しています。
【Access で開発する場合に必要なオブジェクトのパッケージング化】
Accessの開発作業で最も時間の掛かる部分は、目次(メニュー)でしょう。
基幹システムで出来ない細かい事をサブシステム(AccessVBA等)に行わせる場合が多いかと思います。
一つのツール(Accessのフロントエンドデータベース=エンドユーザーがデータを利用する為のAccessファイル)はユーザビリティの良さと処理速度が速い事、そして運用保守がし易い事が肝要です。
業務の核となる部分(備品管理システムであれば、テーブルとして備品在庫一覧情報、商品マスタ、それを変更・追加・削除のフォーム等)が必要ですが、これらのデータを管理する基本となるマスタが必要です。いつ、誰が変更したのか:利用者マスタ、メニュー画面にどんなフォームを表示させるのか等のフォームのアクセス権限等も必要になります。またフォームが多くなれば目的のフォームがどこにあるのか等の探し易さも重要です。
そんなAccess開発ツールの基本となる目次システム『iMenuA』のパッケージングを開発しました。【図1】が目次フォームです。赤枠はフォーム等の大分類(最大12分類)でのメニュー表示が出来、不要なものは表示させない等の機能を備えています。また表示区分により利用者別に見える目次、見えない目次、管理者権限の有無で開けるフォーム開けないフォーム等の設定も可能です。下図のフォーム見出しはピンク色、ボタンは紺色となっていますが、これは「システム設定」にて任意の色に変更が可能です。
目次は23個までマウススクロールせずに表示され最大12分類に設定可能である為、236個のフォームはスクロールせずにボタンの切替で表示が可能です。
登録はその端末のWindowsで開く事が可能なファイルであればどれても登録が可能です。(Word/Excel/Access/OneNote/PDF/テキストファイル/PowerPoint等)
【図1】(目次画面の一部)フォームの見出しがピンク色になっていますが、これはシステム設定でお好みの色に設定可能です。ピンクはちょっとですね。
図2(表示種別マスタ画面)
左図の赤枠が上図目次フォームの大分類の設定です。
【図3】では5つ利用しています。
分類は【拡張機能システムのタイトル名】(在庫管理SYSTEM・営業支援SYSTEM等)の名前別に設定は一つのデータベースで行っている為、ツールそれぞれで設定をする必要はありません。
【図1】の赤枠の分類(表示種別)は最大12分類設定が可能です。【図3】は5分類のみ利用中です。利用者マスタ設定により表示区分により表示/非表示の設定が可能です。また、利用者マスタ設定により管理権限を付ける事で目次あっても開けないフォームの設定が出来、管理権限を持たないユーザーの目次画面では【編集】ボタンは非表示となります。
【図3】目次画面
【運用・保守について】
社内で多くのツールを作成する事により業務の効率化を図る事が出来ますが、運用保守もしていかなくてはなりません。エンドユーザーからの要望や新機能の為のバージョンアップは欠かせません。開発したツールも数個であれば選任担当者がいればやりくり出来るでしょうが、それが数十になった場合のバージョン管理や改修/新規開発等の管理は属人化にならないよう開発ツール全体の管理を出来るよなシステムでなければなりません。『iMenuA』はどのツールがどのようなフォームオブジェクトを使っているか等の総合管理も行います。
【ツールの自動アップデートについて】
『iMenuA』で自動アップデートは二種類用意しています。
オンプレミスの場合とMicrosoft SharePointを利用したものが自動アップデートに対応しています。
VBAを使いネット上にある「URLDownloadToFile」はSharePointサイトでは利用は出来ませんでした。ダウンロードはされますが、4Kバイトのファイルで中身はサイトのURLが記述されています。また、Shellで「bitsadmin」使った場合、MSA(マイクロソフトアカウント)にサインイン状態にならない為かダウンロードに失敗します。
その為、SharePointサイトに共有許可されたMSAでサインインした状態であればブラウザでダウンロードを行っています。(使用するブラウザはEdge固定です。)
VBAからEdgeにダウンロード指示を行う場合、ダウンロードファイルに全角文字が入っている場合、文字化けを起こします。その為、ダウンロードファイルは英字の大文字小文字に変換した独自のロジックを利用し全角文字のないものをSharePoint上にアップロード(実際はSharePointサイトのドキュメントホルダ画面にドラッグ&ドロップしてアップロードは完了します。)
バージョンアップファイルを作成するには、システム設定フォームが入っているツールが実施します。
営業支援システムが対象データベースである為、起動すると.laccdbファイルが作成されてしまい、これをFEDBホルダにコピーする事、VBAで自身をコンパイルする事が出来ない為です。(注:手動でファイル→名前を付けて保存→ACCDEの作成でカレントホルタ以外の場所に作成可能です。)
現在は起動していないフロントエンドデータベースのみ任意の場所、名前で保存がVBAで実行できる仕組みになっています。
赤字の部分は手動操作になります。
.accdeファイルやSharePoint用のアップロードファイルは基本情報SYSTEMから行います。システム内からは自身(基本情報SYSTEM起動中)の.accde/アップロードファイルの作成は出来ません。
エンドユーザーのアップデートは、オンプレミスの場合、バージョンアップのウィンドウ表示で「はい」をクリックし、「OK」「コンテンツの有効化」のクリックでアップデートが終了します。
.accdbと.accdeでのアップデート過程が多少異なりますがいずれも数クリック(Sharepointの場合はDownloadホルダにファイルを保存が必要)で完了します。
新しい業務ツールの基本ツール構造は基本情報SYSTEMを複写する事により簡単にツール生成が可能です。
作成後は基本情報SYSTEMで不要なものは削除し、機能を追加します。
【運用・保守について開発・改修・保守】
開発・改修等の場合、開発の既定のホルダに「開発中」とあれば、組み合わせキーを押す事によりリボン・ナビゲーターの表示・非表示が簡単に出来ます。
またVBEを表示する為の「CTRL+G」「ALT+F11」での表示も可能です。システム設定によりますがデフォルトでエンドユーザー環境では、「Shift+開く」などのバイパスやVBEを表示するショートカットキーは全て無効に設定しています。配布するファイルは{「.accdb」の場合、ステイタスバーを非表示にしていますのでフォームをデザインモードで開く事もVBEを開く事も出来ません。
プログラムの改修は以下のような形で行います。
例:営業支援システム_ver.1.0.5.accdb
↓
営業支援システム_ver.1.0.5.beta.accdbとします。
営業支援システム_ver.1.0.6.accdb等として起動してしまうと「システム設定」テーブルのバージョン情報が「1.0.6」になる為、エンドユーザーでバージョンアップルートに入ってしまいますがファイルがまだ無い為、エラーになり起動が出来なくなります。その場合、営業支援システム_ver.1.0.6.accdbを1.0.5に直して開発環境で再度起動し、強制的にバージョンを戻す事が出来ます。
誤ってバージョンを上げて起動した場合、元のバージョンにファイル名を戻し、左図のウィンドウが表示されたら「いいえ」をクリックする事で強制的に起動したバージョンに書き換えをします。(開発環境のみで実施可能です。)