
AccessをWebシステムに簡単に移行できるツールが、dbSheetClientです。
Accessを業務システムに使用している場合、またはAccessを使用して新しくシステム開発を検討している場合は、Access対応版を使うことで簡単にWebシステム対応の業務システムを構築できます。また既存のAccess資産を活用することで、短期間/低コストで業務システムを構築できます。
Accessの業務システムをWebシステムにレベルアップした(一宮運輸様)顧客実績管理システムの事例も合わせてご覧ください。
※ dbSheetClientの詳細については、「dbSheetClientとは」をご覧ください。
メニュー
Accesst対応版の導入を担当した弊社SEの手記
Access対応版でできることは以下のとおりです。
既に開発して運用しているAccessシステムに少し手を加えるだけで、全社展開するような多拠点システムのWebシステムが実現できます。

dbSheetClientのサーバ版がもつ「リソース管理機能」を全面的に利用することができます。
本格的なWebシステムを構築するに際し、ユーザ認証、権限管理、ログ管理、不正侵入防止等の機能をつけたい場合も、新たにプログラムを開発する必要はありません。
データベース(DB)の管理は、dbSheetClientのサーバ版で行います。
Accessのプログラムの入ったAccessファイルは、クライアントPCにダウンロードされて、動作します。このような動作環境で運用しても、dbSheetClientにより、データとプログラムのサーバ一極集中管理が自動的に実現できます。
従って、Accessファイルの共有する場合と違い、Accessファイルのメンテナンスを任意のタイミングでも行えます。
Webシステムの場合、複数のユーザがサーバの共有データを更新するため、排他制御の仕組みが必須になります。
Access対応版では、APIを通じて楽観的ロック/悲観的ロックの排他制御機能を提供します。
Access対応版dbSheetClientにおける開発の仕方は以下のとおりです。
Access VBAの技術でWebシステムを構築することができます。
既存のAccessシステムの、アプリケーション部(フォーム、クエリ、レポート、モジュール等)は、ほぼそのまま再利用が可能です。
Accessデータ部(テーブル)に関しては、サーバDBに同定義のテーブルがあり、そちらに共有データを置きます。
クライアントPCのAccessファイル内テーブルは、dbSheetClientのサーバ版とやり取りする際の一時(ワーク)テーブルとして利用します。
Access VBAからサーバDBのデータ参照やデータ更新を行いますが、dbSheetClientのサーバ版とのインターフェースは、弊社が提供するAPI(“dbsAccess”)でとることができます。
dbSheetClient開発版では、システム(プロジェクト)で利用するサーバDBの指定とAccessファイル(Accessプログラム)の指定のみを行います。

| No | API関数名 | 説明 |
|---|---|---|
| 1 | GetUserGroup | ログインユーザが所属するdbSheetClientのグループIDを取得する関数 |
| 2 | SetSvr_UserLog | DBSサーバにユーザログ情報の取得を送信する関数 |
| 3 | dbs_DownloadFile | ファイルをサーバからクライアントに転送(コピー)する関数 |
| 4 | dbs_UploadFile | ファイルをクライアントからサーバの転送(コピー)する関数 |
| 5 | DispDataMainte | 定義済みのデータ保守画面をブラウザで表示する関数 |
| No | API関数名 | 説明 |
|---|---|---|
| 1 | GetAllTables | サーバのDBに登録されているすべてのテーブル名を取得する関数 |
| 2 | GetAllViews | サーバのDBに登録されているすべてのビュー名を取得する関数 |
| 3 | ClearLocalData | ローカルDBに登録されている指定テーブルのすべてのデータを削除する関数 |
| 4 | CheckDataExists | サーバのDBに指定条件のデータが存在するか確認する関数 |
| 5 | ExecQuerySvr | サーバのDBに対しSQL文を実行する関数 |
| 6 | CopySvr_fromLocal | ローカルDBからサーバDBに指定条件のデータを更新する(存在しなければ追加する/楽観ロック)関数 |
| 7 | CopySvr_FromLocal_No | ローカルDBからサーバDBに指定条件のデータを更新する(存在しなければ追加する/楽観ロックなし)関数 |
| 8 | CopyLocal_fromSvr | サーバDBからローカルDBに指定条件のデータをコピーする(存在しなければ追加する)関数 |
| 9 | ImportLocal_fromSvr | サーバDBの指定テーブルの定義とデータをローカルDBに作成する関数 |
| 10 | LockSvrRecords | サーバDBの指定条件のデータをレコードをロック/解除する関数 |
| 11 | InsertSvr_FromLocal | ローカルDBの指定条件のデータをサーバDBに挿入する関数 |
| 12 | GetCSV_FromSvr | サーバDBの指定SQLで検索した結果をCSV形式で抽出する関数 |
サーバDBにある必要なデータをクライアントPCに取り込むときのサンプルです。Accessのフォームが開くタイミングで、“SELECT”文で抽出したレコードをAccessファイルのテーブルに取り込みます。

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

次のプログラム例は権限設定の機能を利用した例です。
管理者グループのユーザがログインした場合は、右側の図のようにメンテナンス用のボタンが利用できますが、それ以外のユーザは左側の図のようにメンテナンスは利用できなくなります。

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

運用開始時のdbSheetCient実行版の画面イメージです。
dbSheetclientを起動し、ユーザIDとパスワードを入力します

「注文管理システム」(例)を選択し、「実行」ボタンを押します。
サーバDBのデータがクライアントに反映されることを確認します。

Access版を使うことによるメリットは以下のとおりです。
既存のAccess資産、フォームやクエリ、レポート等の既存アプリケーション部を有効活用して、簡単にWebシステム化できます。データ部もテーブル定義をサーバ側にコンバート(「DBアップ」機能)することにより流用できます。よって、開発工数を大幅に短縮することが可能になります。
Access技術者は、クライアントPCのAccessアプリケーションのみ開発すればいいので、新たにサーバ側プログラム構築のためにJavaやPHP等を習得する必要がありません。
Accessファイルの更新作業はdbSheetClient開発版からアップロードするだけで自動的に行われますので、配布更新作業に伴うリスクがなく、メンテナンスや運用にかかるコストを削減できます。
これまでAccessファイルは壊れやすい、あるいはファイルサイズがどんどん肥大化するといった問題がありました。Access対応版では、常に最新のAccessファイルが実行版PCにダウンロードされるのでそういった問題は回避できます。