― なかぜんの業務改善ラボ ―
「Accessの画面は社内で使いやすいけど、外出先からも使えたらいいのに…」 そんな声を最近よく聞くようになりました。 モバイル対応と聞くと、Accessには難しそうなイメージがあるかもしれませんが、実は「データ構成の工夫」で未来の展開をグッとラクにできます。
この記事では、モバイル対応を見据えたAccessのデータ構成について、実務経験に基づく具体的な設計とコード例を交えながら、やさしく解説します。
なぜ「データ構成」を意識する必要があるのか?
Accessはあくまでクライアントアプリケーションです。 しかし、最近ではPower Apps や Web API、モバイル向けのアプリと接続するケースも増えています。 そこで重要になるのが「他のアプリからアクセスしやすい構成」にしておくこと。以下のような設計がポイントです。
- 1テーブル1目的の原則を守る
- リレーションシップを正しく定義
- IDベースの参照構造
- 更新履歴をログで残す
構成例:Access × モバイル連携を想定した設計
基本3テーブル構成
例えば、社外営業向けの「案件管理」をモバイルでも見られるようにするなら、以下のような構成が理想です。
T_案件
┣ 案件ID(AutoNumber)
┣ 顧客ID(Long)
┣ 案件名(Text)
┣ 登録日(Date)
┗ 状態(Text)
T_顧客
┣ 顧客ID(AutoNumber)
┣ 顧客名(Text)
┣ 住所(Text)
┗ 電話番号(Text)
T_更新ログ
┣ ログID(AutoNumber)
┣ 対象テーブル(Text)
┣ 対象ID(Long)
┣ 更新者(Text)
┣ 更新日時(DateTime)
┗ 内容(Memo)
更新履歴を自動記録するVBA例
モバイル側からも更新が入ることを想定して、更新内容をログとして残す仕組みが重要です。
' 更新ログを記録するプロシージャ
Sub AddLog(tableName As String, targetID As Long, userName As String, contents As String)
Dim db As DAO.Database
Set db = CurrentDb
db.Execute "INSERT INTO T_更新ログ (対象テーブル, 対象ID, 更新者, 更新日時, 内容) " & _
"VALUES (" & _
"'" & tableName & "', " & _
targetID & ", " & _
"'" & userName & "', #" & Now() & "#, " & _
"'" & Replace(contents, "'", "''") & "')"
End Sub
このようなVBAを組み込んでおけば、フォームの「保存」ボタン時にログ記録が簡単に行えます。
注意点とよくあるミス
- 「ID」を直接入力させない:参照整合性を壊す原因になります
- 複数の値を1つのフィールドに入れない:後からの分割が大変です
- 外部連携を前提に「日本語列名」のまま使わない:API接続では英語名の方がベター
応用:Access+クラウドでモバイル連携を実現する
将来的に、Accessのフロントはそのままに、クラウド上にあるデータと連携する構成を取ることもできます。
- Azure SQL Database にデータを移行
- Power Apps を利用してスマホ向けUIを構築
- AccessからはODBC接続でクラウドDBに接続
このような未来に備える意味でも、テーブル構成をシンプルかつ正規化された形にしておくことが大切ですね。
まとめ:モバイル時代のAccessに備える
今回は、モバイル対応を見据えたAccessのデータ構成についてご紹介しました。
- 正規化とID参照を意識したテーブル設計
- ログテーブルの活用で変更履歴を明確に
- 将来的なクラウド対応を見据えた構成
「今はAccessだけで完結しているけど、いずれモバイル対応したい」 そんな方は、まず「データ構成の見直し」から始めてみましょう。
次回は、Azure SQLやPower Appsとの具体的な連携ステップもご紹介する予定です。 気になる方は、ぜひブックマークしておいてくださいね。
― なかぜん
