質問: WindowsNT SP5 VisualBasic6.0 SP3 Access97 で作成したプログラムがあります。 Access97のMDB上にAテーブルとBテーブルがあるとします。 VB上で Aテーブルのデータを Bテーブルに 書き込むという処理をしています。 書き込む時に既にBテーブルに存在していた場合は、 そのレコードを削除して追加しています。 データを削除するという行為をしているのは、 その部分だけです。 今、どのような現象が起こっているかというと、 ACCESS97のMDBのテーブルのあるレコード (ここでいう削除されるレコードが) の全ての項目が #Deleted となってしまっているのです。 テーブルを開いたまま、削除クエリーを流した 時などに表示されるようなあの画面です。 しかし、テーブルを開きなおしても、 #Deleted のままなんです。 MDBを開きなおしても、#Deletedの行が消えるわけでも なく、そのまま残っています。 MDB自体が破損してしまっているようなのです。 修復を試みると、#Deletedの行は消えるのですが、 消えるだけです。 消えて、本来追加されるべきレコードがあればいいのですが、その部分だけが消えてしまうのです。 一体、いつのタイミングで #Deleted の行レコード が作られるのか全く分かりません。 可能性がありそうなのは、そこの削除しているところ だけなのですが、そこで必ず起こるというわけでも ないようです。 サービスパックを最新にすれば治るとかいう手法は できるだけ、とりたくないです。すでに納品されている 状態なので。 どなたか、似た現象に出会ったことがある方、 問題点、解決策、なんでもよいので手がかりでも 教えていただけないでしょうか? とても困っています。 よろしくお願い致します。
回答: ACCESSファイルは修復最適化をしてもファイルに ゴミが残り完全にクリーンな状態ではありません。 新しいmdbを作成してそちらにインポートしてみては どうですか?