電子書籍の厳選無料作品が豊富!

データ保存したものが暫くすると消えてしまっている。
データの入力・保存時ともにエラーは特に発生していない。

上記のものは今現在を残しているみたいで、
データ消えてしまうとバックアップのテーブルの中も消えている。

何か、定期的にバックアップを保存し、データが消えたときには、
バックアップから取ってくることは可能か?
出来れば、簡単なものがあれば簡単に出来るものを。

複雑な処理をしなくてはならないなら、手順をわかりやすく
何が必要でどうしなくてはならないのか教えて下さい。

今現在のDB名前は、「DB.mdb」
バックアップファイルは「DB_bk.mdb」
です。

A 回答 (3件)

shimix さんのご回答に賛成です。



AccessはJetの基本機能(「Accessの新機能」とかではなく)に限れば相当
枯れていて、「エラー無く消える」というのは今ではほとんどありえません
(2007 からの ACE は実績がないので分かりませんが)。
実際にそれが起きているのであれば、プログラムが「そうなるように
組まれている」か「運用形態自体に問題がある」可能性が強いと思います。
どちらも、バックアップを取れば済む話ではありません。バックアップを
取ったところで、もともと実際は保存がされていないので意味がないです。

プログラムが「そうなるように組まれている」かどうかは、第三者には
分かりませんので、再現要因を特定してデバッグしていくしかないでしょう。

「運用形態自体に問題がある」典型的な例としては、共有フォルダに MDB を
置いて(擬似C/S運用ではなく、単一MDB運用)複数オペレータに同時入力させて
いるケースが上げられます。この場合、新規レコードを複数のオペレータが
同時に掴んだら、一番最後に入力を終了(レコードを確定)した人の内容で
上書きされます。他のオペレータの入力内容は跡形も残りませんが、本人は
確実に入力した記憶があって、エラーも起きないので摩訶不思議に思われる
かもしれません。
今のように、Accessで共有するならDB分割、という常識が行き渡る10年位前
には、けっこうこの手のトラブルを見かけました(最近はさすがに見ないです)。

バックアップというのは、PG や運用が間違っていない(=取得断面の情報に
信頼が置ける)場合にのみ意味があるわけで、そもそも間違った結果の断面
など残っていてもほとんど利用価値はありません。
バックアップ云々以前に、問題の現象がなぜ発生するのか、そちらの原因を
究明するほうが先ではないかという印象を持ちますが、いかがでしょうか。
このままでは、仮に1秒おきにバックアップを世代保存したとしても(まあ
そんなこと無茶ですが)依然として消えるものは消えている、という結果に
なりかねないという気がします。
もっとも、原因究明はすでに着手していて、時間がかかりそうなので Fix
までのあいだの救済措置としてバックアップの情報を集めているのだ、と
いうことかもしれませんが。

バックアップそのものに関する回答ではないので、訊きたいことではぜんぜん
ないかもしれませんが、逆に言えばバックアップそのものに関する回答は
もうあらかた出尽くしているので、自分が付け加えるようなことは特にない
です。Accessはフラットファイルベースなので、「簡単に出来るものを」と
言われたら、端的にはファイルコピーで、になっちゃいますね。
    • good
    • 0

#前の質問(

http://okwave.jp/qa3837587.html )でのみなさんの回答は参考になりませんでしたか?

運用形態が書かれていないので何とも言えませんが、そもそも

>データ保存したものが暫くすると消えてしまっている。
>データの入力・保存時ともにエラーは特に発生していない。

というのは常に発生するのでしょうか?そうであればデータが壊れるなどの問題ではなく「そうなるように組まれている」としか思えないのですけど(削除クエリか何かで条件によっては残すべきデータまで削除してしまっているとか)。単に「エラーが発生しても表示を抑制している」だけかもしれませんが、そうそうエラーが頻発する運用もないだろうと思います。

データ消失が頻繁に発生するのであれば、システムや運用で「どこかおかしい」と思います。バックアップは「万一の備え」として必要ですが、毎回毎回リカバリするようなことを前提にするのはちょっと違うでしょう。
    • good
    • 0

私は一介のデザイナでプログラマじゃないです。


だからかどうかは判りませんが、もう一つ状況が飲み込めません。
が、一つだけ気になることがあります。

<バックアップ要領がマズイのじゃないかな?>

DB.mdb

DB_20080101.mdb
DB_20080110.mdb
DB_20080130.mdb

と、2008年1月のバックアップであれば、このようにしないとムダ。
どこで不具合が発生するかはおよそ予測不能。
ですから、どんどん上書きするバックアップほど危険なやり方はないと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す