- ベストアンサー
Accessデータベース分割後のブラッシュアップ
以前、回答が来なかったので、再質問です。 Access2010を使用している初心者です。 データベースを分割してフロントエンドファイルを複数人に配布する予定なのですが、今後運用中にテーブルやフォームのカスタム(フィールドを追加する等)が必要になってくると予想しています。 こういった場合、どのようにカスタムするのが一般的(効率的かつ安全)でしょうか。詳細なオペレーションまでご教示いただけると助かります。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
複数ユーザーで共有している場合のフロントエンドファイルのバージョンアップ http://hatenachips.blog34.fc2.com/blog-entry-422.html が参考になるかと思います。 更新のになるのはテーブルに入れてあるバージョン番号です。 私の場合は、 バックエンドのファイルのテーブルにバージョン番号を入れておいて フロントエンドにリンクテーブルを設けます。 もう一つフロントエンドに普通のテーブルをおいてここにもバージョン番号を入れます。 メニューフォームが最初に立ち上がるように設定し、 そのなかでDlookup関数とかでリンクテーブルと自テーブルのバージョンをチェックし 違っていたら バージョンアップ用のMDE(ACCDE)を呼び出し、自身は閉じます。 呼び出された方はフロントエンドが完全に終了しているのを確認後に削除 ファイルサーバーにある新しいフロントエンドファイルを デスクトップにコピーし、立ち上げ、自身を終了。 というのを作ってました。 ユーザーの中にはズルしてファイルサーバー上のフロントエンドファイルを 直接開いて使う人がいましたので(ネットワークドライブ設定の場合) Currentdb.name とAPIのWNetGetConnection で調べ警告を出して閉じるようにもしました。 http://support.microsoft.com/kb/160529/ja それから、ユーザーの誤操作によってバックエンドのファイルが消されてしまう場合がありましたので フォルダのアクセス権を変更し一般ユーザーの削除の権限を取り上げました。 これによりロック情報ファイル(ldb、laccdb が残りますが私もユーザーの一人だったので問題無し) ただ、一般ユーザーの『最適化』は失敗しますので「閉じるときに最適化」オプションは変更しました。 またバックエンドのファイルには当然パスワードを設定し フロントエンドはVBAのコード中にパスワードが含まれているのでMDE/ACCDEにしました。 あと、大事なのはバックエンドのファイルのバックアップですね。 VBSで作ってタスクスケジューラで定期的に実行するか フリーウェアのBunBackUpを使わせてもらうと世代バックアップも楽になります。 懇切丁寧、手取り足取り教えてくれる奇特な人は期待しない方が・・・。 以上簡単ですがご参考まで。
その他の回答 (1)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
ウーン。運用中にテーブルを変更ですか?これは、やったことはないですね。せいぜい、バグ修正程度。 >こういった場合、 >どのようにカスタムするのが一般的でしょうか? 「効率的で安全な一般的手法はない!」-これが、回答かと思います。 理由、ケースバイケース。 フィールド追加アプリケーションでもって、追加と追加後の整合性と不具合を追放すべきだが・・・。それが、テーブルデータだけの範囲なのか?それとも、使用しているSQL全般に影響するのか?フォームや帳票のレイアウトとコードにも影響するのか?その量と質とによって、やり方は違ってくるでしょう。ですから、一般的ってのはありえない。影響が微々たるものであれば、手作業でも十分だろうし・・・。いずれにしろ、「運用中にテーブルを変更」は止めたがいいですよ。
お礼
ご回答有難うございます。現在はマイナーバージョンアップとしてフロントエンドのカスタマイズをしていますが、まだテーブル変更は行っていません。ユーザがいないタイミングでバックエンドファイル側のバージョンアップを行いたいと思います。
お礼
貴重なご助言有難うございます。常にサーバ上には(Excelからデータを変更したりするときにVBAで参照している)フロントエンドファイルが置いてあるので、それがご回答内の”もうひとつのフロントエンドファイル”の役割を担うことができるかと思います。ご参考にさせていただきます。