Microsoft Accessは、データベース管理だけでなく、VBAやSQLを組み合わせることで業務システムのようなアプリケーションを作成できます。特に、従業員がテーブルやクエリを直接操作せず、専用フォームだけで利用できる仕組みにすると、操作ミスを防ぎながら安全に運用できます。
この記事では、Accessで社内向けシステムを構築するときに必要になる設計の考え方や、VBAによるデータ取得、フォーム中心の操作画面、データ削除処理、SQLを利用したデータ操作などについて詳しく解説します。
Accessで業務システムを作る場合の基本構成
Accessで本格的な業務システムを作る場合、単純にテーブルへデータを保存するだけではなく、役割ごとにオブジェクトを分けて設計することが重要です。
一般的には以下のような構成にします。
| 種類 | 役割 |
|---|---|
| テーブル | データを保存する場所 |
| クエリ | SQLによる検索や加工処理 |
| フォーム | 利用者が操作する画面 |
| VBA | 自動処理やボタン操作の制御 |
利用者にはフォームだけを表示し、裏側のテーブルやクエリは管理者だけが扱う設計にすることで、誤操作を防止できます。
VBAを使って外部システムからデータを取得する方法
会社の基幹システムなどからデータを取得する場合、Access VBAを利用して自動インポート処理を作成できます。
例えば、CSVファイルとして出力された従業員情報をAccessへ取り込む場合は、VBAのTransferTextメソッドを利用できます。
DoCmd.TransferText acImportDelim, , "社員情報", "C:\data\employee.csv", True
このような処理をフォームのボタンに設定すると、利用者は「データ取得」ボタンを押すだけで最新データを取り込めます。
実際の業務では、取得元のシステム仕様によってCSV、Excel、API、ODBC接続など方法が変わるため、データ連携方法に合わせた設計が必要です。
従業員にはフォームだけを使わせる設計にする
Accessを社内システムとして利用する場合、従業員がテーブルやクエリを直接変更できる状態は避けた方が安全です。
そのため、メニュー画面となるフォームを作成し、利用者はボタン操作だけで処理できるようにします。
例えば以下のようなメニュー画面を作成できます。
- データ取得ボタン
- 集計実行ボタン
- 帳票出力ボタン
- 終了ボタン
また、Accessの起動時設定でメインフォームを表示するように設定すれば、利用者が直接データベース画面を見ることなく運用できます。
Shiftキーによる起動制限について
AccessではShiftキーを押しながら起動すると、起動時設定を無視してデータベース内部を確認できます。
開発者にとっては便利な機能ですが、利用者に操作されると設計情報やテーブルが見えてしまいます。そのため、配布時にはShiftキーによるバイパス機能を無効化する設定も検討します。
処理実行後に元データを削除する設計方法
毎日同じ処理を繰り返す業務システムでは、一時的に取り込んだデータを処理後に削除する設計がよく使われます。
例えば、外部システムから取得した売上データを一時テーブルへ保存し、集計処理が終わったら削除する流れです。
DELETE FROM 作業テーブル;
このようなSQLをVBAから実行することで、次回実行時も同じ状態から処理を開始できます。
ただし、削除処理を行う場合は、必要なデータまで消してしまわないように、一時テーブルと正式データ保存用テーブルを分けて管理することが大切です。
AccessではSQLを利用したデータ操作が重要
Accessではクエリ画面から操作することもできますが、業務システムとして作り込む場合はSQLを理解していると柔軟な処理が可能になります。
例えば条件に一致するデータだけ更新する場合はUPDATE文を利用します。
UPDATE 社員情報 SET 状態='有効' WHERE 退職日 IS NULL;
また、複数テーブルから必要な情報を取得する場合はSELECT文とJOINを利用します。
SELECT 社員名, 部署名 FROM 社員 INNER JOIN 部署 ON 社員.部署ID = 部署.ID;
SQLをVBAから実行することで、ボタン一つで複雑なデータ処理を自動化できます。
Access業務システムを作成するときの注意点
Accessでシステムを作る場合、最初からすべての機能を作ろうとすると複雑になりやすいため、まずは小さな処理から作成することがおすすめです。
例えば、最初は「データ取得ボタン」だけを作成し、次に「加工処理」「帳票出力」と段階的に追加していくと問題点を確認しやすくなります。
また、複数人で利用する場合は、データベースを分割する方法も有効です。テーブルを保存するバックエンドと、フォームやVBAを保存するフロントエンドに分けることで、安定した運用ができます。
まとめ
Accessでは、VBA・フォーム・SQLを組み合わせることで、社内業務向けのデータ管理システムを構築できます。
安全な運用を行うには、利用者にはフォームだけを提供し、テーブルやクエリは直接操作させない設計が重要です。
また、外部データ取得、自動処理、不要データ削除、SQLによる加工処理などを組み合わせることで、繰り返し利用できる業務アプリケーションを作成できます。まずは小さな機能から作成し、実際の業務に合わせて改善していくことが成功への近道です。


コメント