プロが教える店舗&オフィスのセキュリティ対策術

環境:Windows98 + VB5.0(SP3) + Access97

VBプログラムで、Access-MDBのオープンの為、以下の命令を発行します。
Set DB = OpenDatabase("D:\・・・\Md1.mdb")

通常問題無く動いているのですが、たまに以下のエラーが発生します。
エラー番号:3343
エラー内容:データベースの形式 'D:\・・・\Md1.mdb' を認識できません。

このエラー発生後は、REPAIR命令で修復しなければなりません。

このエラーの理由・対策等をお教え下さい。
少し古い環境での問題なので、既に語り尽くされているのかもしれませんが、よろしくお願いします。

A 回答 (3件)

こんにちは



私も以前世話してたシステムもVB5-Ac97で
tngさんと同じ現象が、出ました。
それも、違う顧客で3件も。

その時の原因として共通だったのは
1.MDBが全体で50MB超えていた
2.一番でかいレコード数のテーブルが壊れていた
3.壊れ方は、数値の項目に記号の羅列が化けて入っていた

対処方法は
最初はデータベースを修復をして対処しました。
が、またしばらくして同じ顧客で発生したので
以下のようにすると治まりました
1.エラー発生レコードは削除
2.新規mdbを作成
3.既存mdbのテーブルを新規mdbにインポート

一度試してください
    • good
    • 0
この回答へのお礼

早速ありがとうございます。やはり発生していましたか。しかし、違う顧客で3件というのは厳しいですね。

3つの原因について、私の状況を書いてみます。
1.MDBが50MB以上 : 226KBのMDBでも発生しました。
2.・・・テーブルが壊れていた : エラー発生するとMDB自体が開かないのでどのテーブルが壊れていたかは判りませんでした。 またエラーが発生するのはデータベースのオープンの時で、テーブルオープンでエラーが発生した事はありませんでした。
3.数値項目に記号:MDB修復をするとデータ内容は全て保持されていました。データ内容がおかしくなっていた事はありませんでした。

書いて下さった対処方法ですが、これを行うと一切再発しなかったという事でしょうか?もしそうならば、素晴らしいですね。
ただ、私の場合、エラー発生レコードというのが存在しないので、単にテーブルインポートだけでしょうか。

お礼日時:2002/08/03 12:24

私も以前同じような状況になって


データ件数もそれほど多くなかったのでアプリケーション起動時に
データベースを修復してから起動するようにしました。

今、VB6でAccess2000で同じように開発してるのです
また同じような事にならないか心配です(笑)
    • good
    • 0
この回答へのお礼

ありがとうございます。
事前に修復しておいても駄目ですよね、私やってみましたから、全然効き目有りませんでした。

Access2000ならば絶対大丈夫でしょうね、Access97だけの現象ですから。

それにしても、思ったより回答が少ないですね。あまり発生していないのでしょうか。確かに、Win98+VB5+Ac97の全く同じ環境で、一切エラー発生無しというシステムも有りましたから。だから、かえって、何故?が深くなるのですが。
まあPC時代になってから、こういうエラーをキチンと調べるのは無意味という風潮がありますからねえ、ああ、愚痴になってしまう。

お礼日時:2002/08/07 12:50

こんにちは


No1のお礼に対しての返事です。

>これを行うと一切再発しなかったという事でしょうか?
発生はなくなりました。
今また発生しているかどうかは、転職したので定かではありませんが。。。

>私の場合、エラー発生レコードというのが存在しないので
>単にテーブルインポートだけでしょうか。
そうですね。それでよろしいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。再発無しですか、素晴らしい!

ちょっとテストをしています。
テストプログラムを用意、これはあるmdbに対し、mdbオープン・テーブルオープン・mdbクローズ・テーブルクローズオープン、という処理を10万回繰り返すものです。
で、A.mdb、これは何度も3343認識エラーが発生&修復したmdbです。
そして、B.mdbを新規作成し、A.mdbのテーブルを全てインポートしました。
このB.mdbでテストプログラムを実行、10回位繰り返して、今のところエラーは出ていません。
10万回×10回=100万回のオープン・クローズです。
以前迄はA.mdbで処理すると2回目位(20万回以内)でエラー発生していましたから。

mdbの新規作成とテーブルインポート、有効みたいですね。

それにしても、このエラーの原因って何なのでしょうね。
Access97固有のエラーみたいですが・・・
この組み合わせで購入したお客さんは、いー迷惑ですよね。

お礼日時:2002/08/05 16:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す