Access業務をWebシステムに移行

AccessをWebシステムに移行できるツールがdbSheetClientです。Accessを業務システムに使用している場合、またはAccessを使用して新しくシステム開発を検討している場合は、dbSheetClientを使うことでフロントはAccessを使いながらWebシステム対応の業務システムを構築できます。また既存のAccess資産を活用することで、短期間/低コストで業務システムを構築できます。


Access対応でできること

 Access対応では、プログラム作成をいままで通りAccessで行いながら、dbSheetClientの機能はAPIで呼び出しますので、既存のAccessシステムを簡単にWebシステムへレベルアップできます。Webシステムにレベルアップ後も、Accessを理解した現場のかたでシステムのメンテナンスを行えるため、変化の激しい環境下でも、現場が納得できるシステム開発と運用を実現できます。

開発の特徴

ここでは、Access対応による開発に関して説明します。

Access VBA技術でWebシステムを構築

Access VBAの技術でWebシステムを構築することができます。

既存のAccessアプリ部(フォーム、クエリ、レポート等)を有効活用

既存のAccessシステムの、アプリケーション部(フォーム、クエリ、レポート、モジュール等)は、ほぼそのまま再利用が可能です。Accessデータ部(テーブル)に関しては、サーバDBに同定義のテーブルがあり、そちらに共有データを置きます。クライアントPCのAccessファイル内テーブルは、dbSheetClientのサーバ版とやり取りする際の一時(ワーク)テーブルとして利用します。

VBAからWebサービスAPIを介してサーバ機能を利用

Access VBAからサーバDBのデータ参照やデータ更新を行いますが、dbSheetClientのサーバ版とのインターフェースは、弊社が提供するAPI(“dbsAccess”)でとることができます。

開発版の定義編集はDB定義とMDBファイルのパス定義

dbSheetClient開発版では、システム(プロジェクト)で利用するサーバDBの指定とAccessファイル(Accessプログラム)の指定のみを行います。


※クライアントPC ⇒
この時、クライアントPCには、 dbSheetClient実行版+Microsoft Accessランタイムがインストールされています。

APIを利用したVBAによるプログラム開発

WebサービスAPIコールにより、dbSheetサーバとの連携を実現します。

AccessVBAからAPIを利用しサーバDBとのデータ通信部分を記述します。

既存のプログラムに対し、サーバとのデータ連携部分を追加記述します。

既存のAccessシステムのプログラムはほぼそのまま流用しサーバ連携部分をAPI利用で追加記述します。

数ユーザによるデータ更新時の同時実行制御をサポートします。

サーバの共有DBに対し複数ユーザのデータ更新でデータに矛盾が生じないよう排他制御を行ないます。

Accessシステムは通常、アプリ部(フォーム、クエリ、モジュール、レポート等)とデータ部(テーブル)から構成されています。Access対応dbSheetClientでは、既存のAccessアプリ部、およびテーブル定義を最大限有効利用します。クライアント側のAccessテーブルは、サーバDBのデータをダウンロードした際の一時保管(テンポラリ)テーブルとして利用します。また、既存のAccessプログラムに、サーバとのデータ通信をAPIを使って追加記述することにより、Webシステム化を可能にしています。

VBAによるプログラム例

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

サーバDBにある必要なデータをクライアントPCに取り込むときのサンプルです。Accessのフォームが開くタイミングで、“SELECT”文で抽出したレコードをAccessファイルのテーブルに取り込みます。

Private Sub Form_Open()
Dim blnStatus As Boolean

'取込開始
blnStatus = dbsAccess.CopyLocal_fromSvr(“注文”, “SELECT * FROM [注文]”, True, True) ‘ヘッダ部分の取込
blnStatus = dbsAccess.CopyLocal_fromSvr(“注文内容”, “SELECT * FROM [注文内容]”, True, True)  ‘明細部分の取込
If blnStatus = False Then
MsgBox “サーバからの取込に失敗しました。”, vbOKOnly + vbExclamation, “注文管理システム”
End If
Me.Requery

データ更新時:サーバDBへの反映 VBAコード例

クライアントPCのデータをサーバDBに書き込む場合のサンプルです。テーブル(”注文”)のレコードをクライアントPCのデータを元に、サーバDBの更新データとして書き換えます。

Private Sub サーバ更新()
Dim blnStatus As Boolean

‘サーバDB更新
blnStatus = dbsAccess.CopySvr_fromLocal(“注文”, “WHERE 注文ID =” & Me.注文ID, False)
If blnStatus = True Then
MsgBox “サーバ更新を完了しました。”, vbOKOnly + vbExclamation, “注文管理システム”
End If

サーバへのログ出力:VBAコード例

ユーザの操作履歴や処理内容をサーバ管理画面のログとして出力する場合のサンプルです。出力したい処理のところに”SetSvr_UserLog”を挿入することにより、システム管理者はユーザの操作ログを閲覧することができます。

Private Sub ログ出力_Click()
Dim blnStatus As Boolean

blnStatus = dbsAccess.SetSvr_UserLog(“ログ出力”, “テストログです。”)
If blnStatus = True Then
実行結果テキスト.Text = "ログ出力を完了しました。"
Else
実行結果テキスト.Text = "ログ出力に失敗しました。"
End If
pagetop