
ACCESSベースで生徒提出物をバーコード管理し、受付票のレシートや各種統計、帳票を印刷するVBAによるPOSを組んで4月から勤務校等で使用しているのですが…
先日、導入している関連校で”ブックマークが参照できません”というメッセージが複数回現れた後に、フリーズ、その後強制終了により、データベースが破損するという事象が起きました。
一応、世代管理で過去5日分、就業時間前に自動バックアップする仕様にしているのですが、1日分のデータの事もあり、壊れた状態から復元すると、40件ほど全て”*”が表示された行ができていました。これはどうやら、登録済みのレコードが破損したもののようです。さらに、生徒提出物を採点者に渡す際の現物仕訳の段階で、一度、登録したレコードの内、”*”を残さずに完全に消滅したと思しきものが43件ありました。
その問題の起きた関連校のみ、学園本部ネットワークにBD本体を置き、インターフェイスを職員室のネットワークに置いていました。(私は経路が迂遠になり、レスポンスが下がるので推奨しませんでしたが)
最近、学園本部でDNSを入れ替えた後、様々なトラブルが発生していました事も追記します。
上記の状況を総合的にみた場合、どのような原因で、83件のデータの消失が起きたのか、今後のためにも是非、知りたく思います。
お手数をおかけしますが、お知恵をお貸しください。
No.2ベストアンサー
- 回答日時:
ブックマークが参照できません・・の時点で
エラー処理出来たら良かったんでしょうけど、
いまさら言っても始まらないですね・・・。
以下は推測にすぎませんが
ファイルをパスワード保護しているか、
「レコードレベルでロックして開く」のチェックが外れている場合に
ページレベルのロックになります。
http://office.microsoft.com/ja-jp/access-help/HP …
(2010でも同様です)
で、Accessのキャッシュか遅延書き込みの際に
何かしらの問題があってカレントレコードだけではなく
ページ(4Kバイト)単位でおかしくなったのでは?
Accessの場合1日1回のバックアップでは安心できません。
モノによってですが、タスクスケジューラで
出社時・昼食時・定時退社時間時
の1日3回×三日分の世代バックアップを取っています。
(安定動作するようになってからはお世話になっていませんが大事な保険)
ご指摘ありがとう御座います。
特に何もせずともレコードレベルでロックされているものと勘違いしてました…orz
さっそく確認します。
No.1
- 回答日時:
>どのような原因で
作り方に問題がなかったとしたら、アクセスだからとしか言いようがない。
アクセスは複数端末で使ったり、ネットワーク越しに使ったりすると、時々壊れる。
アクセスの一つの問題は、アーカイブログとかないからロールバックなどできないので、(ネットワーク越しなどで)クエリを実行して返事がない場合、何がおきたのか誰にもわからなくなることも有りうる。 対策方法としては、レコード操作はすべてSQLで行い、そのSQL文をログとして、ローカルに書き出してから実行する。 SQL実行後は、終了した旨をログに残すなどの配慮をしたことはあるが、、、問題がおきるのを解決できるわけではない。
お勧めとしては、dbを信頼できるものに変えること。 アクセスはSQLサーバーにアップスケールできるので、フロントエンドはそのまま使うことができるのでそれが簡単かな。 フリーのDBもいろいろあるけど、アクセスよりましという観点からは、Microsoft SQL Server Express Edition,Oracle Express Edition,IBM DB2 Express-C、PostgreSQL,MySQLくらいだけど、sqlサーバー以外はクエリを全部対応するSQLに書き換えてあげないといけない。 (若干、構文が違うこともある)
ご指摘、ありがとう御座います。
急遽、DBを組むことになったので、手軽に入力画面や帳票を作れるACCESSを選んでしまいました。やっぱり、評判は良くないんですね…
レコード操作はレスポンスを早くするためにSQLで行っています。ログは取れそうです。
その内、ACCESSで作ったインターフェイスはそのままに、外部DBでMYSQLを導入できないかを検討します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access レポートで罫線...
-
ACCESSのレコード操作で1つ前...
-
ACCESSのフォームで次のレコー...
-
差込印刷で顧客別に複数行のデ...
-
Accessのレポートの集計に条件...
-
ファイルメーカでのパスワード...
-
Accessのレポート上のテキスト...
-
ExcelからAccessデータを検索す...
-
アクセスのレポートを印刷する...
-
Accessで値がnullの場合は計算...
-
Accessのクエリーのゼロデータ...
-
Access クエリで連結する文字...
-
MS-WORDで、あるフィールドに入...
-
A1、A2、A3・・・とデータを増...
-
アクセス2000でデータ抽出...
-
ACCESS でフォームフィルターを...
-
ファイルメーカ 集計の表示
-
Accessを使ってレポートを印刷...
-
accessであるデータを抽出でき...
-
Accessクエリで年月フィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access レポートで罫線...
-
ACCESSのレコード操作で1つ前...
-
差込印刷で顧客別に複数行のデ...
-
ACCESSのフォームで次のレコー...
-
Accessのフォームへ、記録者の...
-
accessのマクロで「一時変数設定」
-
ADOで現在のレコードの次のレコ...
-
ホスト汎用機でのNDBアクセス方法
-
Accessのレポートの集計に条件...
-
ファイルメーカーで一括入力す...
-
アクセスデータベースのUnicode...
-
ファイルメーカーで検索条件の...
-
ACCESSでオフセットを求める方法
-
日付の加算・減算ってできますか?
-
ファイルメーカーで該当件数を...
-
ファイルメーカープロでレコー...
-
ラベルをクリックしてレコード...
-
ファイルメーカー印刷時の改ページ
-
アクセスでのエクセルでいう行...
-
FileMakerで特定のレコードのみ...
おすすめ情報