ブラウザでJavaScriptが無効になっています。
サイトを閲覧・利用するためには、有効にしてください。

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の特徴】

  1. クライアント側のファイル形式はADP
  2. クライアント側にテーブルやクエリはない
  3. リンクテーブルに比べ、処理速度が速い(最小限のトラフィック)
  4. データの抽出・参照はSQL Serverのビューを利用
  5. 追加・更新・削除にはストアドプロシージャを利用

メリットが多かったADPが廃止されることで、Access-ADP資産を多く持つ企業にとって、どのようにシステムを改良・継続させていけば良いのか、戸惑う部分もあるのではないでしょうか。

Access対応版が提供できるソリューション

 dbSheetClientのAccess対応版は、プログラム作成を今まで通りAccessで行いながら、dbSheetClientが提供しているAPIを追加するだけで、既存のAccessシステムをWebシステムへレベルアップできます。
 導入後も、Accessを理解しておられる現場の方々でシステムのメンテナンスを行えるため、変化の激しい環境下であっても、現場が納得できるシステム開発と運用を実現できます。

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
定義ファイル
  • DB接続情報
  • ACCDBのパス情報
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ファイルのテーブルに取り込みます。

フォームオープン時:サーバーDBのデータ取得

・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の更新データとして書き換えます。

データ更新時:サーバー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” を挿入することにより、システム管理者はユーザーの操作ログを閲覧することができます。

データ更新時:サーバーDBへの反映

・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の実行版を起動後、下記の図のような流れで動作します。

【システム運用イメージ】

システム運用イメージ