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