Access2003とPowerAppsをAzureSQLDatabaseでリンク Vol.1

Access VBA

SQLServerとAccessのリンクを勉強中ですが、
クラウド利用も考えて AzureSQLServerを無料版で申し込みました。
AzureSQLServerに  データベースが自動作成されたあと、
Azureでファイヤーウォール設定 自分のPC環境からのipアドレスを登録します。
あとは、SSMSから接続し、テーブルを作成しました。
作成したデータベースプランは 月々6ドル程度のBASICプランです。
AzureでのSQLServer接続ができればローカルでSSMSから同じ要領で使えます。

注意 SSMSから データベースも作成したらAzureにデータベースが作成反映されています。これはすごいと思いましたが、しかし、作成された2個目のデータベースの初期設定されたプランは、月々400ドルのプランでした。勉強だと思いましたが、最安のBASICプランへの変更したあとすぐに削除しました。不用意にSSMSからデータベースを追加したりすると恐ろしいことになります。Azure側から計画的に追加が必要です。

今回の環境
Win8.1pro32bitPCのAccess2003から ODBCは ODBC Driver 18 for SQL Server を使って
Azure SQL Serverに作成したサンプルデータベースのテーブルへリンク接続できました。
接続はSQLServer認証です。ここは、PCのSQLServerへのODBC接続方法と同じです。
サーバー名は test.database.windows.net,1433 とポート番号がつきます。

こんどは以前から使っていた Microsoft Power Appsから AzureSQLServerに接続できるかやってみました。Power Appsはクラウド用のアプリが簡単に作れます。PCのブラウザ アンドロイドスマフォ iPhoneからでも利用ができます。スマフォの場合は、専用のPower Appsアプリを入れる必要があります。GoogleのAppsheetと同じです。アクセスのクラウド版的な位置づけのツールです。VBAのようなプログラムを書くというよりは、Excelの関数を使うような ノーコード、ローコードツールです。
アクセスVBAで作れるような複雑なことは出来ませんが、業務用クラウドアプリが簡単に作れます。
https://powerapps.microsoft.com/ja-jp/
Microsoft365BUSSINESにはいっていますので、ワード エクセル アクセス などの ラインナップの一つです。
PowerAppsのアカウントは Azureとは別のマイクロソフトアカウントです。
いろいろ使っているので、無料プランでなく、有料プランで使っています。
私はアプリ無制限のper/userプランを使っています。
有料プランでないと、SQLSrver接続は選択できません。
PowerAppsのデータソース選択の右のダイヤモンドのアイコンは有料プランのマークです。
GoogleSpreadSheet接続などは無料です。

Power Apps側から データソースは SQLServerを選びます。
オンプレミスのSQLServerと AzureのSQLServer と 選択できますが、
今回は AzureのSQLServerでSQLServer認証を選び サーバー名 データベース名 ユーザー名 パスワードを入れます。
しかし、何度やっても接続エラーとなります。

いろいろ調べた後、Azure側にもどって サーバファイヤーウォール設定の
Azureサービスおよびリソースにこのサーバーへのアクセスを許可する にチェックをいれました。

こんどは 問題なく PowerAppsから Azureのデータベースに接続でき、テーブルをリンクできました。

いつもは 主にデータソースは、GoogleDrive内GoogleSpreadSheetとリンクさせてアプリを作っています。今回は、初めてAzureSQLServerへの接続です。

PowerAppsで自動作成された画面です。

AzureSQLServerにデータベース、テーブルを置いたことで
ローカルPCのAccess2003のデータと クラウドのPowerAppsのアプリが リンクされました。
Accesで追加修正したデータは 即時に PowerAppsアプリに反映されます。
設定の問題かわかりませんがPowerApps側からの現在追加修正はできないようです。リードオンリーになってしまいます。
GoogleSpreadSheetをデータソースにすれば追加編集はできます。

翌日追記
PowerAppsのリードオンリーになる原因を解決するため再挑戦。思い当たるのがアカウント違いです。
今度は Azure(SQLServer)のアカウントとマイクロソフト365(PowerApps)を同じアカウントのもので再度 設定したところ PowerApps側でも追加、編集ができました。順序的には、すでに利用中のMicrosoft365(PowerApps)のアカウントで、新規にAzureの登録をしました。別アカウントでの2個目のAzureは無料アカウントが登録で来ませんでしたので、従量制アカウントで申し込みました。同じクレジットカード登録をしたためか携帯認証を同じ携帯番号にしたかで紐づいたと思われます。
マイクロソフトアカウント、マイクロソフト365アカウントは別物らしいので、理解と使い方が難しいです。別アカウントでも、AzureADで仲間にすれば同じように使えるようになるのか現時点わかりません。
これで、AzureSQLServerを介して、ローカルPCのAccessとPowerAppsでクラウドアプリ(スマフォ)、PCブラウザでデータが自由に閲覧、追加、修正、削除ができるようになりました。

以前は、GoogleSpreadSheet と SharePointServerをクラウドのデータ元としていましたが
SharePointはデータ5000件の壁があったり、SpreadSheetはとっつき易いがデータが増えた場合の管理が難しという問題点が、AzureSQLServerで解決できそうです。PowerAppsから使えるマイクロソフトのDataverse(以前の名前はCDS)からの接続はまだ使いこなせていません。アクセステーブルを簡単にエキスポ―トしてリンクできるらしいです。今後挑戦したいと思います。

2年前に覚えていろいろなアプリを作ってから、2年間さわっていませんでしたが、再びPowerAppsでのアプリづくりができそうです。
SalesForceも業務で使っているので、そちらとも連携してみたいと思います。

コメント

タイトルとURLをコピーしました