
環境:Windows98 + VB5.0(SP3) + Access97
VBプログラムで、Access-MDBのオープンの為、以下の命令を発行します。
Set DB = OpenDatabase("D:\・・・\Md1.mdb")
通常問題無く動いているのですが、たまに以下のエラーが発生します。
エラー番号:3343
エラー内容:データベースの形式 'D:\・・・\Md1.mdb' を認識できません。
このエラー発生後は、REPAIR命令で修復しなければなりません。
このエラーの理由・対策等をお教え下さい。
少し古い環境での問題なので、既に語り尽くされているのかもしれませんが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
私も以前世話してたシステムもVB5-Ac97で
tngさんと同じ現象が、出ました。
それも、違う顧客で3件も。
その時の原因として共通だったのは
1.MDBが全体で50MB超えていた
2.一番でかいレコード数のテーブルが壊れていた
3.壊れ方は、数値の項目に記号の羅列が化けて入っていた
対処方法は
最初はデータベースを修復をして対処しました。
が、またしばらくして同じ顧客で発生したので
以下のようにすると治まりました
1.エラー発生レコードは削除
2.新規mdbを作成
3.既存mdbのテーブルを新規mdbにインポート
一度試してください
早速ありがとうございます。やはり発生していましたか。しかし、違う顧客で3件というのは厳しいですね。
3つの原因について、私の状況を書いてみます。
1.MDBが50MB以上 : 226KBのMDBでも発生しました。
2.・・・テーブルが壊れていた : エラー発生するとMDB自体が開かないのでどのテーブルが壊れていたかは判りませんでした。 またエラーが発生するのはデータベースのオープンの時で、テーブルオープンでエラーが発生した事はありませんでした。
3.数値項目に記号:MDB修復をするとデータ内容は全て保持されていました。データ内容がおかしくなっていた事はありませんでした。
書いて下さった対処方法ですが、これを行うと一切再発しなかったという事でしょうか?もしそうならば、素晴らしいですね。
ただ、私の場合、エラー発生レコードというのが存在しないので、単にテーブルインポートだけでしょうか。
No.3
- 回答日時:
私も以前同じような状況になって
データ件数もそれほど多くなかったのでアプリケーション起動時に
データベースを修復してから起動するようにしました。
今、VB6でAccess2000で同じように開発してるのです
また同じような事にならないか心配です(笑)
ありがとうございます。
事前に修復しておいても駄目ですよね、私やってみましたから、全然効き目有りませんでした。
Access2000ならば絶対大丈夫でしょうね、Access97だけの現象ですから。
それにしても、思ったより回答が少ないですね。あまり発生していないのでしょうか。確かに、Win98+VB5+Ac97の全く同じ環境で、一切エラー発生無しというシステムも有りましたから。だから、かえって、何故?が深くなるのですが。
まあPC時代になってから、こういうエラーをキチンと調べるのは無意味という風潮がありますからねえ、ああ、愚痴になってしまう。
No.2
- 回答日時:
こんにちは
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固有のエラーみたいですが・・・
この組み合わせで購入したお客さんは、いー迷惑ですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) こんにちは。Accessのことで教えてください。M365環境で、Private Declare Fu 1 2023/01/09 14:59
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- その他(パソコン・スマホ・電化製品) A.I.D社のポータブルナビの地図更新について 1 2022/05/13 15:37
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- iPhone(アイフォーン) できれば至急お願いします! 管理栄養士国家試験の、今日の5問というアプリを始めたいのですが、こんなエ 1 2023/04/14 23:01
- Visual Basic(VBA) VBAのエラーについて 2 2023/08/02 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでエラー このフィー...
-
VMplayerでのIPアドレス競合
-
空白はダメというエラーの表示...
-
オラクル(PL/SQL)のエラー
-
Access2010実行時エラー-21473525
-
列名に変数を使うことはできな...
-
SQL文を間違えたときにエラーを...
-
SSIS(SP1)で発生するエラーにつ...
-
SQLserver2005 nvarchar を flo...
-
DocuWorksでの印刷
-
オラクルでisnumeric?
-
ACCESS 2003ランタイムによるEX...
-
AccessのMDBのオープンエラーに...
-
UPDATEを使ったSQL文にて
-
MySQLでcreateが使えない MySQL...
-
DBDが動作しません。
-
(素人の質問) SQL Server エ...
-
【Excel】[Expression.Error] ...
-
SQLPLUSで結果を画面に表示しない
-
タブ区切りデータからダブルコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスでエラー このフィー...
-
#1062 - '0' は索引 'PRIMARY' ...
-
オラクル(PL/SQL)のエラー
-
列名に変数を使うことはできな...
-
SQLserver2005 nvarchar を flo...
-
BULK INSERTのエラー取得は可能...
-
AccessVBA 実行時エラー'2766'...
-
UPDATEを使ったSQL文にて
-
空白はダメというエラーの表示...
-
SQL文長の制限
-
PL/SQL ORA-06502エラーに関し...
-
Access2010実行時エラー-21473525
-
エラーについて
-
DocuWorksでの印刷
-
Access 実行時エラー'3075' 対...
-
アクセスでのエラーについて
-
『ORA-00936: 式がありません。...
-
オラクルでisnumeric?
-
実行時エラー459 withステート...
-
SQL*Loaderで「オブジェクトが...
おすすめ情報