始めに書いておきますが、Accessバックアップの考え方を書きます。
実際のコードは探せばいっぱいあると思うのでそちらを参照ください。
バックアップの考え方なのでAccess以外にも当てはまると思います。
Accessのファイルってたまに壊れる事があります。
データベースだから壊れると困りますよね。
なのでAccessでバックアップをとるのは非常に重要になります。
データベースのソフトなので言わずもがななのですが。
でも、Accessは自動でバックアップしてくれないのです。
そこでユーザーが使い易いバックアップの設計が必要になります。
設計なので様々な事情や前提から色々やり方がわかれるのですが、
Accessバックアップにおける私の考えを纏めておきます。
こうしなきゃいけないというものではないので、参考程度にお読み頂けたらと思います。
Accessのバックアップの考え方
1. バックアップは手動と自動、両方できる方がよい。
当たり前なので偉そうに言う事でもないですね。
2. 手動でバックアップしたファイルと自動でバックしたファイルはファイル名等で判別できた方が良い。
判別できなくてもいいけど、できた方がよいですね。
3. Access外部でバックアップを取る手法もあるが、Access上からバックアップできた方がよい。
これは設計で分かれる所ですが、ユーザにとってソフトは少ない方がいいとの考えからです。
4. バックアップファイル(またはフォルダ)名には、日時を入れた方がよい。
これも偉そうに言う事じゃないですね。当然の事です。
5. バックアップファイルでそのまま運用させない様な仕組みがあった方がよい。
例えば「顧客データ.accdb」というファイルを運用していて、「顧客データ_20220227.accdb」というバックアップファイルが生成される。問題があって「顧客データ_20220227.accdb」を復帰させる事になって、これをそのまま運用して「顧客データ_20220227_20220228.accdb」というバックアップが作成される。というのはイケテナイですよね。
6. バックアップファイルを減らす機能、もしくはバックアップファイルを制限させる機能があるとよい。
これはあった方がいいというオプションです。無くてもいいと思います。ただ保存領域に限りがある場合、ファイル数で制限するとか、日付で制限するとか、古いファイルをいい感じに間引くとかいう機能があると便利です。
7. 自動でバックアップする場合、起動時にバックアップを取った方がよい。
自動バックアップのタイミングですが、大きく分けて「起動時」と「終了時」があると思います。鶏が先か卵が先かみたいな話ですが、一応理由はあります。一番最初ってバックアップがありません。なので起動時にとってくれると助かります。また、終了時にバックアップをとると、運用中のファイルとバックアップファイルが同じになってしまいます。これってちょっとだけ無駄ですよね。
以上、バックアップ設計の参考になれば幸いです。