- ベストアンサー
Access-MDBのオープンエラーについて
- Windows98 + VB5.0(SP3) + Access97の環境で、VBプログラムでAccess-MDBのオープンを行う際にエラーが発生することがあります。
- エラー番号3343が表示され、データベースの形式を認識できないという内容です。
- このエラーの対策としては、修復命令であるREPAIRを使用する必要があります。古い環境のため、既に解決方法が存在する可能性もあります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 私も以前世話してたシステムもVB5-Ac97で tngさんと同じ現象が、出ました。 それも、違う顧客で3件も。 その時の原因として共通だったのは 1.MDBが全体で50MB超えていた 2.一番でかいレコード数のテーブルが壊れていた 3.壊れ方は、数値の項目に記号の羅列が化けて入っていた 対処方法は 最初はデータベースを修復をして対処しました。 が、またしばらくして同じ顧客で発生したので 以下のようにすると治まりました 1.エラー発生レコードは削除 2.新規mdbを作成 3.既存mdbのテーブルを新規mdbにインポート 一度試してください
その他の回答 (2)
- sienna
- ベストアンサー率35% (51/145)
私も以前同じような状況になって データ件数もそれほど多くなかったのでアプリケーション起動時に データベースを修復してから起動するようにしました。 今、VB6でAccess2000で同じように開発してるのです また同じような事にならないか心配です(笑)
お礼
ありがとうございます。 事前に修復しておいても駄目ですよね、私やってみましたから、全然効き目有りませんでした。 Access2000ならば絶対大丈夫でしょうね、Access97だけの現象ですから。 それにしても、思ったより回答が少ないですね。あまり発生していないのでしょうか。確かに、Win98+VB5+Ac97の全く同じ環境で、一切エラー発生無しというシステムも有りましたから。だから、かえって、何故?が深くなるのですが。 まあPC時代になってから、こういうエラーをキチンと調べるのは無意味という風潮がありますからねえ、ああ、愚痴になってしまう。
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは No1のお礼に対しての返事です。 >これを行うと一切再発しなかったという事でしょうか? 発生はなくなりました。 今また発生しているかどうかは、転職したので定かではありませんが。。。 >私の場合、エラー発生レコードというのが存在しないので >単にテーブルインポートだけでしょうか。 そうですね。それでよろしいかと思います。
お礼
ありがとうございます。再発無しですか、素晴らしい! ちょっとテストをしています。 テストプログラムを用意、これはあるmdbに対し、mdbオープン・テーブルオープン・mdbクローズ・テーブルクローズオープン、という処理を10万回繰り返すものです。 で、A.mdb、これは何度も3343認識エラーが発生&修復したmdbです。 そして、B.mdbを新規作成し、A.mdbのテーブルを全てインポートしました。 このB.mdbでテストプログラムを実行、10回位繰り返して、今のところエラーは出ていません。 10万回×10回=100万回のオープン・クローズです。 以前迄はA.mdbで処理すると2回目位(20万回以内)でエラー発生していましたから。 mdbの新規作成とテーブルインポート、有効みたいですね。 それにしても、このエラーの原因って何なのでしょうね。 Access97固有のエラーみたいですが・・・ この組み合わせで購入したお客さんは、いー迷惑ですよね。
お礼
早速ありがとうございます。やはり発生していましたか。しかし、違う顧客で3件というのは厳しいですね。 3つの原因について、私の状況を書いてみます。 1.MDBが50MB以上 : 226KBのMDBでも発生しました。 2.・・・テーブルが壊れていた : エラー発生するとMDB自体が開かないのでどのテーブルが壊れていたかは判りませんでした。 またエラーが発生するのはデータベースのオープンの時で、テーブルオープンでエラーが発生した事はありませんでした。 3.数値項目に記号:MDB修復をするとデータ内容は全て保持されていました。データ内容がおかしくなっていた事はありませんでした。 書いて下さった対処方法ですが、これを行うと一切再発しなかったという事でしょうか?もしそうならば、素晴らしいですね。 ただ、私の場合、エラー発生レコードというのが存在しないので、単にテーブルインポートだけでしょうか。