• ベストアンサー

Accessの有効なメンテナンス方法は

現在Accessで会社の業務アプリケーションを作成しています。 ファイルサーバのフォルダに作成したmdbファイルを置き、各クライアントには、デスクトップにmdbのショートカットを配置してあります。 しかし、最近mdbのサイズが大きくなり、たまにファイルが破損するという現象が起きるようになりました。 そこで、mdbをテーブルとそれ以外に分け、テーブルのみのmdbをサーバに置き、テーブル以外のmdbをそれぞれのクライアントにコピーしました。 これで少しは改善すると思うのですが、この業務用アプリケーションはかなり頻繁に改良/修正が行われます。今までは、サーバに置いてあるmdbを修正するだけで良かったのですが、今回各クライアント(20台)にテーブル以外(クエリ・フォーム・レポート等)のmdbをコピーして運用しているので、一度修正が発生すると、この各クライアントのmdbを更新しなければなりません。 これはかなり手間がかかってしまうので、なんとか違う運用方法がないか、いろいろ検討しています。 実際に作業するのは私一人です。 一人でも20台のクライアントのmdbを簡単に更新できる方法はないでしょうか。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • soaikats
  • ベストアンサー率58% (14/24)
回答No.4

ログオンするだけでサーバにある最新の プログラムが配布される方法です。 -- サーバ\\Asvr\Sample\にて  1.PG.mdbとDB.mdbを格納する。 各クライアントにて  2.以下のように記述したバッチAA.batをC:\に格納する。   @echo off   copy /y \\Asvr\Sample\PG.mdb C:\  3.バッチのショートカットをスタートアップに入れる。  4.バッチを実行後、C:\PG.mdbのショートカットを    デスクトップに作成し、名前を変更する。 -- いかがでしょうか?

stressman
質問者

お礼

soaikatsさん、ありがとうございます。 こんな簡単な方法で最新版をコピーできるとは思いませんでした。 おもしろそうなので試してみたいとおもいます。

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

アプリMDB と データMDBのテーブルにバージョン番号フィールドを設け アプリMDBのAutoExec マクロでチェックして 必要に応じて下記VBSファイルを呼び出して自身は終了するでは? Test.VBS の内容 Set ws = CreateObject("Wscript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") serverPass = "\\ServerName\共有名\アプリ.mdb" localPass = ws.SpecialFolders("DeskTop") & "\アプリ.mdb" 'wscript.echo serverpass & vbCrLf & localPass ws.PopUp "しばらくお待ちを" , 3 Wscript.Sleep 1000 'アプリMDB終了までの時間稼ぎ If fs.FileExists(serverPass) Then fs.CopyFile serverPass ,localPass,True Else Wscript.Echo "サーバーにファイルが見当たりません" Wscript.Quit End If 'wscript.echo "msaccess.exe" & Chr(32) & Chr(34) & localPass & Chr(34) ws.Run "msaccess.exe" & Chr(32) & Chr(34) & localPass & Chr(34)

stressman
質問者

お礼

nicotinismさん、ありがとうございます。 VBスクリプトは全く分かりませんので、一度調べさせて もらいます。

noname#140971
noname#140971
回答No.2

各クライアントのMDBを開発用PCで参照するようにしておけばいいと思います。 ドラッグアンドドロップを20回やればいい訳です。 ただ、その場合、リンクを再構築しないで済む仕掛けはして置く必要があります。 ただ、その場合、リンクを再構築する仕掛けはして置く必要があります。

stressman
質問者

補足

Husky2007さん、ありがとうございます。 各クライアントのmdbを置くフォルダをネットワーク上で共有できる形にしておき、修正版が出来た場合は、各クライアントの共有フォルダ上のmdbを更新するという考え方でよろしいでしょうか。 なるほど、それなら各クライアントまで足を運ぶ必要はなさそうですね テーブル以外のmdbはテーブルの部分が全て「テーブルのリンク」です。 これは更新の都度、リンクの再構築をしなければならないのでしょうか

noname#182251
noname#182251
回答No.1

テーブルのみのmdbとテーブル以外のmdbをともにサーバに置けば良いでしょう。

stressman
質問者

補足

fuuten_no_nekoさん、ありがとうございます。 テーブル以外のmdb(以下フロントmdb)もサーバに置き、それぞれのクライアントにはそのフロントmdbのショートカットを配置させるという考え方でいいのでしょうか。 上記の運用方法だとパフォーマンスの方は落ちないでしょうか?

関連するQ&A