Access ADP機能の廃止について
Microsoft Access 2013以降、ADP(Accessプロジェクト)への対応が廃止になりました。
ADPは、Access2010 + SQL Server2008R2までの対応となり、Access2013以降やSQL Server2012以降でOLEDB接続が未対応となります。
※office2013のサポート期限は2023年4月11日まで
Access-ADPのシステム構成と特徴
【システム構成】
元々ADPはSQL Server側でデータ処理を行うため、ネットワークの負担を軽減しパフォーマンスの良いシステムが構築できるメリットがありました。
【Access ADPの特徴】
- クライアント側のファイル形式はADP
- クライアント側にテーブルやクエリはない
- リンクテーブルに比べ、処理速度が速い(最小限のトラフィック)
- データの抽出・参照はSQL Serverのビューを利用
- 追加・更新・削除にはストアドプロシージャを利用
メリットが多かったADPが廃止されることで、Access-ADP資産を多く持つ企業にとって、どのようにシステムを改良・継続させていけば良いのか、戸惑う部分もあるのではないでしょうか。
Access対応版が提供できるソリューション
dbSheetClientのAccess対応版は、プログラム作成を今まで通りAccessで行いながら、dbSheetClientが提供しているAPIを追加するだけで、既存のAccessシステムをWebシステムへレベルアップできます。
導入後も、Accessを理解しておられる現場の方々でシステムのメンテナンスを行えるため、変化の激しい環境下であっても、現場が納得できるシステム開発と運用を実現できます。
下記のような業務で、ご利用いただいています。
Access対応版の主な特徴
- ファイル形式はACCDB
- サーバーによるログイン認証
- グループ別の権限管理が可能
- ユーザー操作ログの一元管理
- データ更新時の同時実行制御あり
- 直接SQL実行やストアドプロシージャ実行、及びビューの参照も可能
- Access Runtimeでも動作可能
- Access2016~2021、Microsoft365(Access)に対応
- WAN回線にも対応(http、soap)
- ACCDBの自動配布機能
- SQL Server2014~2022に対応
※SQL Server2012のサポートは、2022年7月12日に終了
Access対応版における開発
Access対応版における開発は、MS-AccessとdbSheetClient開発版を使用します。
PGファイル | 処理内容 | 開発ツール |
---|---|---|
ACCDBファイル | Web対応アプリケーション(API利用) | MS-Access |
定義ファイル |
|
dbSheetClient開発版 |
システム開発時は、MS-Accessを利用しAPIをコールすることにより、dbSheetClientのサーバー版が提供する機能を利用します。また、dbSheetClientの開発版を使い、DB接続情報とAccessファイルのバス情報を定義します。
Accessシステムは通常、アプリ部(フォーム、クエリ、モジュール、レポート等)とデータ部(テーブル)から構成されています。
dbSheetClientのAccess対応版では、既存のAccessアプリ部、およびテーブル定義を最大限有効利用します。クライアント側のAccessテーブルは、サーバーDBのデータをダウンロードした際の一時保管(テンポラリ)テーブルとして利用します。また、既存のAccessプログラムに、サーバーとのデータ通信をAPIを使って追加記述することにより、Webシステム化を可能にしています。
Access対応版が提供するAPIはこちら
APIを利用したVBAによる開発
【フォームオープン時:サーバーDBのデータ取得】
サーバーDBにある必要なデータをクライアントPCに取り込むときのサンプルです。
Accessのフォームが開くタイミングで、SELECT文で抽出したレコードをAccessファイルのテーブルに取り込みます。
・VBAのコード例
Private Sub Form_OPen()
Dim blnStatus As Boolean
'取込開始
blnStatus = dbsCls.CopyLocal_fromSvr("注文", "SELECT * FROM [注文]", True, 1) 'ヘッダー部分の取込
If blnStatus = False then
MsgBox "サーバーからの取込に失敗しました。", vbOkOnly + vbExclamation, "注文管理システム"
Exit Sub
Else
blnStatus = dbsCls.CopyLocal_fromSvr("注文内容", "SELECT * FROM [注文内容]", True, 1) '明細部分の取込
If blnStatus = True Then
Msgbox "サーバーからの取込を完了しました。", vbOkOnly + vbInformation, "注文管理システム"
Me.Requery
Else
MsgBox "サーバーからの取込に失敗しました。", vbOkOnly + vbExclamation, "注文管理システム"
End If
End If
【データ更新時:サーバーDBへの反映】
クライアントPCのデータをサーバーDBに書き込む場合のサンプルです。
テーブル(注文)のレコードをクライアントPCのデータを元に、サーバーDBの更新データとして書き換えます。
・VBAのコード例
Private Sub サーバー更新()
Dim blnStatus As Boolean
'サーバーDB 更新
blnStatus = dbsCls.CopySvr_fromLocal(“注文”, “WHERE 注文ID =” & Me. 注文ID, False)
If blnStatus = True Then
MsgBox“ サーバー更新を完了しました。”, vbOKOnly + vbExclamation,“ 注文管理システム”
End If
【サーバーへのログ出力】
ユーザーの操作履歴や処理内容をサーバー管理画面のログとして出力する場合のサンプルです。
出力したい処理のところに ”SetSvr_UserLog” を挿入することにより、システム管理者はユーザーの操作ログを閲覧することができます。
・VBAのコード例
Private Sub ログ出力_Click()
Dim blnStatus As Boolean
blnStatus = dbsCls.SetSvr_UserLog("ログ出力", "テストログです。")
If blnStatus = True then
MsgBox "ログ出力を完了しました。", vbOkOnly + vbInformation
Else
MsgBox "ログ出力に失敗しました。", vbOkOnly + vbExclamation
End If
Access対応版におけるサーバー版の役割
Access対応版のサーバー版では、Accessプログラム(ACCDB)の配布の自動化や、排他制御などWebシステム化をサポートする機能を提供しています。
リソース管理機能
dbSheetClientのサーバー版が持つ、リソース管理機能を全面的に利用することができます。
ユーザー認証、権限管理、ログ管理、不正侵入防止等の機能を付与する場合、新たにプログラムを開発する必要がありません。
開発したAccessプログラムの配布を自動化
データベースの制御は、dbSheetClientのサーバー版で行います。Accessのプログラムの入ったAccessファイルは、サーバーからクライアントPCにダウンロードされて、動作します。従って、Accessファイルのメンテナンスを任意のタイミングで行えます。
サーバー同時アクセスに対する排他制御をサポート
Webシステムの場合、複数のユーザーがサーバーの共有データを更新するため、排他制御の仕組みが必須になります。Access対応版ではAPIを通じて楽観的ロック / 悲観的ロックの排他制御機能を提供します。
※Accessファイル→Accessのプログラムが実装されているACCDBファイルを意味します。
Access対応版のシステム運用の流れ
dbSheetClientの実行版を起動後、下記の図のような流れで動作します。
【システム運用イメージ】