• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスのデータベース破壊について)

アクセスデータベース破壊について

このQ&Aのポイント
  • アクセスデータベースの作成方法と注意点
  • アクセスデータベースの壊れやすい原因と対策
  • アクセスデータベースの安定性向上のためのアドバイス

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

  • ベストアンサー
回答No.2

「日次更新作業」として、1日の最後に「データベースの最適化」を行えば、壊れることはありません。 ちまたで「アクセスは壊れやすい」と言っている人は「アクセスのmdbは定期的に最適化が必要」と言うのを知らない、無知な連中なので、そういうアホの言う事は信じてはいけません。 「mdbが壊れる」というのは、mdbで最適化を行わないでいて、ガベージコレクションで開放しきれないゴミが溜まり、ゴミが一定量を超えると、アクセス自身がmdbを正しく操作できなくなるからです。 この場合は「データベースの修復」で、ゴミが一掃され、アクセスで認識可能に戻ります。 当然ですが「データベースの最適化」は「溜まったゴミを消す」と言う処理なので、最適化さえしていれば、壊れる事はありません。 >壊れやすくしないようにするには フォームでメニューを作成し「入力作業」と「日次更新」と「年次更新」の作業が出来るようにして、1日の作業が終わったら、終業前に「日次更新」を行って、マクロで「データベースの最適化」をすると良いです。 データベースの最適化をしやすくする為、入力フォームやメニューのあるmdbファイルと、テーブルの実体があるmdbファイルに分け、入力フォームやメニューのあるmdbファイルから「テーブルのリンク」を用いて、テーブルの実体があるmdbファイルを見に行くようにすると良いです(マクロで自分自身を最適化しようとすると「自分自身が使用中なので最適化できない」と言われてしまうので、マクロを動かすmdbと、テーブルの実体があるmdbを、別々のmdbにする) 当方では、上記の方法で「毎日必ず最適化」していますので >・更新回数(件数・入力日等)が多い >・データベースを更新する人が多い >・バックアップを毎回取る等の処理を入れていると壊れやすい >・サーバー上に置くとあまりよくない >・データが溜まってくると壊れやすい の全部の条件に当てはまってますが、10年近く、一度も壊れた事がありません。 蛇足ですが、年次処理では「レコードの削除等でデータベースを空っぽにする」ではなく「空っぽの状態のまま最適化して保存してあるmdbファイルを、マクロで本物のmdbファイルに上書きコピーする」という処理をした方が良いです。 なので、mdbは ・マクロや入力フォームやメニューフォームがあるmdbファイル(テーブルはデータ用mdbにテーブルリンクする。ユーザーはこのmdbファイルを開く) ・テーブルの実体が入っていて、日々、入力データが溜まるmdbファイル(毎日、終業前に、マクロでこのmdbを最適化する) ・テーブルが空っぽの状態のmdbファイル(年次処理でファイルコピーして、テーブルを空っぽにするのに使う) の3ファイル構成になります。 なお、年次処理の時に、上書きされて消えてしまうmdbを、上書きコピー前に別名のファイルで保存しておけば「○○年度版のmdbデータ」として保存しておけます。

9tree
質問者

お礼

作成方法まで提示してくださって大変参考になりました ありがとうございました また、別途質問させて頂くかもしれませんが、その際はよろしくお願いします

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

アクセスは単一ファイルだから、壊れようによっては、データが修復できないという悪いことが起きる可能性が高い。 あと、ネットワーク越しのSQLだと、時々不正なデータが発生することがあるんだよね。 その辺の問題が片付けられるなら、アクセスでも十分対応できると思う。 なんかうろ覚えだけど、 テーブル名などに全角英数、記号、半角かなを使わない、 なるべくVBで書かない(できる限りクエリで済ませる)。 サーバにおくものはテーブルだけにする。 信頼の置けるネットワーク環境で利用する。 バックアップ、最適化、データベースの修復は定期的に。 などは基本かな。

9tree
質問者

お礼

VBで書かない等参考になりました ありがとうございました