AccessとDataverse連携の実力|クラウド移行の足がかりになるか
AccessのデータをDataverseへ移行する公式ツールは整備済みですが、OLEオブジェクトなど3種類のデータ型は移行不可、Power Apps Premiumライセンスが必要など前提条件が重めです。向くケースと向かないケースを整理します。
結論:Dataverse連携はAccessの「クラウド化の入口」だが、前提コストが重い
2025年時点で、AccessのデータをDataverseへ移行する公式ルートは整備されています。Access上の移行ツールを使えば、テーブルとリレーションシップをDataverseに書き出せます。移行時にリンク作成のオプションを選んでおくと、Access側にはDataverseへのリンクテーブルが作られ、移行後もAccessのフォームやクエリをそのまま使い続けながら、データだけをクラウドに置くという構成が可能です。
ただし、これが「足がかり」として機能するかどうかは、ライセンス環境と移行前のデータ構造によって大きく変わります。通常のMicrosoft 365ライセンスだけでは、カスタムアプリを動かせる独立したDataverse環境は作れません。Power Appsのプレミアムライセンスが別途必要で、ユーザー単位のコストが発生します。「Microsoft 365を契約しているからDataverseも使える」は、少なくともカスタム活用の文脈では当たりません。
OLEオブジェクトやリッチテキストはDataverseへ移行できません。集計フィールド(Calculated)は、最後に計算された値が列として移行されるものの、計算式自体は引き継がれません。浮動小数点(Number:Single / Number:Double)は精度に制限があり、大きな数値のある行は移行ツールに弾かれます。データが整っているほど移行は進みやすく、当社の経験では、長年運用してきたAccessほど非対応データで引っかかりやすい傾向があります。
移行を検討する前の現状整理は移行先の比較記事が参考になります。Dataverseを含むMicrosoftスタックへの移行の文脈ではPower Apps移行の記事もあわせてご覧ください。
Access→Dataverse移行の仕組みと手順
移行操作はAccess側から行います。対象のデータベースを開き、ナビゲーションウィンドウでテーブルを右クリックして「エクスポート」→「Dataverse」を選択し、移行するテーブルを指定します。Microsoftの公式ガイド(Get started: Migrate Access data to Dataverse)に操作手順が記載されています。
移行ツールは実行前にバリデーションを行い、サポートされないデータ型やサイズ超過の行を検出します。問題が見つかると、移行を中止するか、問題のあるデータをAccessに残したまま対応可能な部分だけ移行するか、を選択できます。この仕組みはデータロスを防ぐための設計ですが、「移行できた列」と「残った列」が混在することを意味します(Data types and sizes for Access data migration to Dataverse)。
移行時にリンク作成のオプションを選んだ場合、移行が完了するとAccess側の元テーブルはリネームされ、元の名前でDataverseへのリンクテーブルが作られます。既存のフォームやクエリがテーブル名を参照している場合、リンクテーブルの名前が同じなのでそのまま動く場合もありますが、動作は保証されません。AutoNumber列はDataverse側でWhole Number列に変換され、DataverseはGUID主キーを別途自動生成するなど、主キーやデータ型が変わるため、移行後の検証が必要です。VBAコード内でフィールドを直接参照している箇所は特に注意して動作確認してください。
一対多のリレーションシップは移行できますが、条件があります。「リレーションシップで参照される側(1側)のフィールドが、そのテーブルの主キーでなければならない」という制約です。複雑に組まれたリレーションシップや、主キー以外のユニーク列を参照している構造は、事前に整理が必要になります。
必要なライセンスとロール
移行を実行するユーザーには、対象のDataverse環境での「Environment Maker」ロールが必要です。移行後にアプリを利用するユーザーには「Basic User」ロールを割り当てます。
ライセンスは、移行先がDataverseかDataverse for Teamsかで変わります。
| 種別 | ストレージ | 必要なライセンス | 向くケース |
|---|---|---|---|
| Dataverse | リレーショナル10GB+(追加購入可) | Power Apps Premium等の対象ライセンス(Dynamics 365は付随利用権の範囲内) | Teamsの外でも使うアプリ、高度なロール管理が必要な業務 |
| Dataverse for Teams | チームごとに最大2GB | Microsoft 365(Teamsが使えるプラン) | Teamsの中で完結する業務、追加ライセンスを避けたい |
標準のMicrosoft 365ライセンスに含まれるDataverseの機能は、Microsoft Project等の特定アプリが内部で使う範囲に限定されており、カスタムアプリの作成には使えません(Licensing overview for Microsoft Power Platform)。「Teamsの外でPower Appsを動かしたい」なら、Power Apps Premium等の対象ライセンス(Dynamics 365は付随利用権の範囲内)が別途必要です。Power Apps Premiumの2025年時点の参考価格は1ユーザーあたり月額20ドル程度で、社内ユーザー全員分となると無視できないコストになります。
移行できないデータ型と、注意が必要なケース
Microsoftの公式ドキュメント(Data types and sizes for Access data migration to Dataverse)に記載されている非対応データ型は以下の3つです。
- OLEオブジェクト(埋め込みの画像・Excelシート・PDF等)
- 集計フィールド(Calculated):最後に計算された値は列として移行されるが、計算式自体は引き継がれない
- リッチテキスト
OLEオブジェクトはAccessの古くからある機能で、写真・PDFの管理に使っているデータベースでよく見かけます。これがある場合、対象列はAccess側に残り、Dataverseには反映されません。画像や添付ファイルについては、Attachment列は各レコードにつき添付ファイルが1件の場合に限りFileデータ型へ移行できます(Accessの添付は1レコードに複数保持できるため、複数添付は対象外です)。
数値型の扱いにも注意が必要です。Number:Double / Number:Singleは移行できますが、Dataverse側の上限が±1,000億・小数点以下5桁に制限されます。この範囲を超えるデータがある行は移行されず、Accessに残ります。精度が必要な場合は、事前にDecimal型(Dataverseでは小数点以下10桁まで対応)に変換してから移行する方法があります。
多値参照(Multi-Value Lookup)は1列構成のものに限り移行できますが、その場合もDataverseのChoice列に合わせて移行前に公式手順での手動変換が必要です。複数列の参照は事前にAccess側で作り直す必要があります。
Accessで長期間運用されたデータベースには、これらの「非対応データ」が複数混在していることがあり、その場合は移行ツールを動かす前にデータ棚卸しの工程が実質的に必要です。現状のデータ構造を把握したい場合は無料の解析可否チェックで確認できます。
Access 2024のDataverse連携
2024年にリリースされたAccess 2024(Office LTSC 2024)の新機能としては、MonacoベースのSQLエディタ、新しいグラフ種類、EdgeブラウザコントロールなどのUI改善が公式に案内されています(What's new in Access 2024)。同ページには「AccessDataverse Connector with Power Platform」の記載もあり、モバイルアプリやTeams統合を可能にするものとして説明されています。ただし、データ型の制約やバリデーションの仕様は公式の移行ガイドで別途確認してから進めるのが確実です。
Access 2024のサポートは2029年10月9日まで。それ以降は延長なしの打ち切りです。Dataverse連携を「将来の選択肢として確保しておきたい」のであれば、今のうちにデータ型の整理と小規模なパイロット移行を試しておく価値はあります。
Dataverse連携が現実的なケース、そうでないケース
整理すると、Dataverse連携が比較的スムーズに進むのは次のようなケースです。
- 組織がすでにPower Appsのライセンスを持っている
- AccessのデータがShort Text、整数、Decimal型(Dataverseの範囲内の値)、Yes/No中心で構成されている
- OLEオブジェクトや複雑なリレーションシップが少ない
- 将来的にPower AppsやPower BIでの活用を見据えている
反対に、Dataverse連携よりも別の移行先を検討した方がよいケースもあります。
- Microsoft 365の追加ライセンスを増やせない予算環境
- OLEオブジェクトや旧式の集計フィールドが大量に存在する
- Accessのフォームを大幅に作り直す工数が取れない
- Teamsを使っていない職場(Dataverse for Teamsの恩恵が薄い)
「Microsoft製品でまとめたいが、Power AppsとDataverseは重い」という場合は、kintoneやWebシステムへの移行が現実的なこともあります。代替選択肢の比較も参照してください。
よくある質問
Q. 移行後もAccessのフォームやVBAはそのまま使えますか。
テーブル名は維持されるため、テーブル名で参照しているフォームやクエリはそのまま動く場合もありますが、動作は保証されません。テーブル構造(主キーやデータ型)は変換されます。AutoNumber列はDataverse側でWhole Number列になり、DataverseはGUID主キーを別途自動生成します。VBAコード内でフィールド名を直接参照している箇所を含め、移行後は検証が必要です。
Q. Dataverse for TeamsとDataverseはどちらを選べばよいですか。
Microsoft 365のライセンスだけで始めたいならDataverse for Teams。Teamsの外でもアプリを使いたい、ユーザー数が多くて細かいロール管理が必要、将来Dynamics 365との連携も視野にある、という場合はDataverse(フル版)が向きます。ストレージ容量もDataverse for Teamsはチームごと最大2GBで、今のAccessファイルに近い規模からスタートできます。
Q. 移行ツールで「データ型がサポートされていない」と出たらどうすればよいですか。
エラーになった列を確認し、OLEオブジェクトなら画像を別管理にするか添付ファイル列に変換を検討します。集計フィールドはDataverse側で再設定が必要です。解決できない非対応データが多い場合は、Dataverseへの移行よりも別の移行先を選ぶ方が工数を抑えられるケースもあります。
Q. Microsoft 365を契約していますがDataverseは使えますか。
標準のMicrosoft 365ライセンスに含まれるDataverse機能は、Microsoft ProjectなどMicrosoft製アプリが内部的に使う範囲に限定されており、カスタムPower Appsを作成・実行するためには使えません。カスタムアプリでDataverseを活用するにはPower Apps PremiumやDynamics 365などの対象ライセンスが必要です。例外として、Teamsを使った業務に限定するならDataverse for Teamsが追加料金なしで利用できます(Power Platform ライセンス概要参照)。
触れないAccessが「診断できるか」だけ、確かめませんか。
顧客データは送信不要。発注の義務もありません。
約2分・ファイル送信不要・発注義務なし/説明はオンライン・売り込みはしません