
今度アクセスでデータベースを作ろうと思っています
当方かなり久しぶりにアクセスを触るので、色々と勉強しているのですが
ネットで「アクセスは壊れやすい」との情報を多く見かけます
色々と調べてみると
・更新回数(件数・入力日等)が多い
・データベースを更新する人が多い
・バックアップを毎回取る等の処理を入れていると壊れやすい
・サーバー上に置くとあまりよくない
・データが溜まってくると壊れやすい
等がわかりました
当方がこれから作ろうとしているのは
・サーバー上に置いて複数人が触るもの
・入力人数は多くても6人以下(通常は1~2人)
・一つの事柄に対して入力項目が多いが、数は年間100件程。
・毎日入力するものではなく、入力する必要が出れば入力する類
・年が切り替われば、また新しいデータベースにする
・入力項目が多いので、ある程度わけてテーブルは構築するつもりです
こういった感じです
壊れやすくしないようにするにはor上記を見た限りではやはり壊れやすいのでやめといたら等々
アドバイスをお願いします。
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データ」として保存しておけます。
作成方法まで提示してくださって大変参考になりました
ありがとうございました
また、別途質問させて頂くかもしれませんが、その際はよろしくお願いします
No.1
- 回答日時:
アクセスは単一ファイルだから、壊れようによっては、データが修復できないという悪いことが起きる可能性が高い。
あと、ネットワーク越しのSQLだと、時々不正なデータが発生することがあるんだよね。 その辺の問題が片付けられるなら、アクセスでも十分対応できると思う。なんかうろ覚えだけど、
テーブル名などに全角英数、記号、半角かなを使わない、
なるべくVBで書かない(できる限りクエリで済ませる)。
サーバにおくものはテーブルだけにする。
信頼の置けるネットワーク環境で利用する。
バックアップ、最適化、データベースの修復は定期的に。
などは基本かな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 政治 性被害を受けた回答者のうち、「どこ(だれ)にも相談しなかった」は47.3% 1 2022/06/18 11:34
- その他(ソフトウェア) Googleフォーム、効率的な入れ方 2 2022/10/03 22:44
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- 消費者問題・詐欺 フィッシング詐欺メールに返信してしまった場合の対処法 3 2023/06/25 18:35
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのmdbを開こうとしたとき...
-
Accessデータベースの最適化をE...
-
「○○○.ldb」のAccess レコード ...
-
accessのmdbが勝手にできている?
-
Accessでmdbが開いているかのチ...
-
100万行のCSVを10万行ずつのフ...
-
【Excel】[Expression.Error] ...
-
ACCESS で 項目名を出力せずに...
-
共有フォルダに誰が何にアクセ...
-
ADOを使ったDBアクセス後のメモ...
-
文字化けを取り除きたい
-
Excel VBA 処理後データが重た...
-
Becky!で「メールサーバーへの...
-
Palm Desktop ソフトウェアの...
-
特定のフォルダに入れたファイ...
-
社内Excel共有ブックでの保存ト...
-
SQLPLUSで結果を画面に表示しない
-
#1062 - '0' は索引 'PRIMARY' ...
-
Dream weaverで、誤ってファイ...
-
VBAでCSVファイルが使用中かど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「○○○.ldb」のAccess レコード ...
-
Accessのmdbを開こうとしたとき...
-
accessのmdbが勝手にできている?
-
アクセスをネットワークでリン...
-
ACCESSのモジュールエラー?
-
Accessデータベースの最適化をE...
-
ファイルは開くのに「見つから...
-
Accessで「誰々が使用中です」...
-
Excelでmdbファイルが簡単に開...
-
ExcelのマクロでAccessのmdbを...
-
accessなしの人にも、accessのM...
-
Access2003でVBAツールの参照設...
-
Access2000 で読み取り専用の...
-
ACCESS mdbファイル 更新日時
-
排他のエラーメッセージ
-
ACCESS2003 ファイルが増えてい...
-
ほかのユーザーが同じデータに...
-
Accessのmdb分析(解析)方法ま...
-
Accessでリンクテーブルのパス変更
-
アクセスのファイルが壊れた!!!!!!
おすすめ情報