Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
「エラー:3343 〇〇〇.accdbを認識できません。」の解決方法
投稿日時: 18/11/28 13:24:58
投稿者: ぽろんちょ

いつもお世話になります。
 
件名の通り、「エラー:3343 〇〇〇.accdbを認識できません。」のエラーが出るようになりました。
今までこのエラーが出る事はなかったのですが、ここ数日毎日のようにエラーが出てしまいます。
 
エラーが出た場合、一度accessを閉じて再度開くと修復を初めてバックアップの別ファイルが作成されます。
元々のファイルを再度開いて使用すると、エラーが出ずに普段通り使用できます。
 
このエラーの原因と解決方法がおわかりになれば教えていただけますでしょうか。
宜しくお願い致します。
 

回答
投稿日時: 18/11/28 14:22:40
投稿者: hatena
投稿者のウェブサイトに移動

Accdbファイルが破損している可能性が高いです。
 
「最適化と修復」を実行してみてください。
それでも改善しないようなら、
新規にAccdbファイルを作成して、そこに問題のAccdbからすべてのオブジェクトをインストールして、そのファイルを使用するようにしてみてください。

投稿日時: 18/12/03 13:20:44
投稿者: ぽろんちょ

hatena様
 
ご返信ありがとうございます。
教えていただいた通り、「最適化と修復」を実行しましたが、やはりエラーが出てしまいました。
その後、新規でaccessファイルを作って問題のオブジェクトをインストールしましたが、
同様にエラーが出てしまいました。
 
エラーが出るようになったaccessファイルですが、作業の流れとして、
お昼の11時くらいにファイルを開いて、外部からのcsvファイルを取り込んで集計します。
この時点ではエラーが出ません。
しかし、13時くらいにもう一度同じ作業を行うとエラーが出るようになります。
(時間を追うごとに取り込むデータが変動していくので、一日数回この作業を行います。)
 
毎日この作業をしていますが、一番最初ではエラーが出ません。二回目以降に必ずエラーが出ます。
 
大変申し訳ないですが、ほかに何か解決方法がありますでしょうか。
宜しくお願い致します。

回答
投稿日時: 18/12/04 10:22:59
投稿者: hatena
投稿者のウェブサイトに移動

ひょっとして、テーブルだけのデータベースファイル(バックエンドファイル)と、それ以外のオプジェクトのデータベースファイル(フロントエンドファイル)に分割して運用していますか。
 
もし、そうなら、
「エラー:3343 〇〇〇.accdbを認識できません。」
の 〇〇〇.accdb はバックエンドファイル、フロントエンドファイルのどちらですか。

投稿日時: 18/12/05 15:23:51
投稿者: ぽろんちょ

hatena様
 
ご返信ありがとうございます。
分割して運用はしておりません。
 
自分なりにいろいろと試したところ、エラーが出ないケースがある事に気付きました。
11時に最初の作業をした後にファイルを閉じ、13時に再びファイルを開いて作業をするとエラーが出ませんでした。今までは11時に作業をした後はずっとファイルを開きっぱなしにしたまま、13時に再度作業をしておりました。
 
ファイルを開きっぱなしだとなにか不具合があるのでしょうか?
とは言っても、今まではファイルを開きっぱなしでもエラーは出ていませんでした...。

回答
投稿日時: 18/12/05 21:33:42
投稿者: hatena
投稿者のウェブサイトに移動

そのエラーがでるのどのタイミングですか。
 
ファイルを開く時とか、コマンドボタンをクリックしたときとか、具体的に提示してください。
 
また、そのエラーが出たとき、そのダイアログにデバッグボタンはありますか。
あるなら、それをクリックしたときに反転表示されるコードをその前後を含めいて提示してください。

投稿日時: 18/12/07 11:35:06
投稿者: ぽろんちょ

hatena様
 
ご返信ありがとうございます。
 
エラーが出るのはボタンをクリックした時です。
主にデータのインポートとインポートしたデータの加工をしています。
反転表示されるコードの前後は以下のようになります。
 
        DoCmd.RunSQL "DELETE * FROM 受注データ"
        DoCmd.RunSQL "DELETE * FROM 棚卸し"
        DoCmd.RunSavedImportExport "インポート-ルート別データ" ← ここで反転します。
        DoCmd.RunSavedImportExport "インポート-優先順位"
        DoCmd.RunSavedImportExport "インポート-受注データ"
        DoCmd.RunSavedImportExport "インポート-棚卸し"
         
        DoCmd.RunSQL "DELETE * FROM AAAデータ WHERE 略号 = 'PAL-B'"
        DoCmd.RunSQL "UPDATE AAAデータ SET AAAデータ.略号 = StrConv([AAAデータ]![略号],8)"
         
        DoCmd.RunSQL "DELETE * FROM 受注データ WHERE 品目コード = 'PAL-B' OR 届先コード <> 'F143' OR 出荷処理状況 = '取消'"
 
お忙しいところ大変申し訳ありませんが、よろしくお願い致します。

回答
投稿日時: 18/12/07 13:41:59
投稿者: hatena
投稿者のウェブサイトに移動

ぽろんちょ さんの引用:

        DoCmd.RunSavedImportExport "インポート-ルート別データ" ← ここで反転します。

 
保存済みのインボート定義を実行しているのですね。
 
「エラー:3343 〇〇〇.accdbを認識できません。」のエラーの 〇〇〇.accdb というのは、インポートしようとしているテーブルのあるファイルですか。
 
もし、そうなら、このファイルを修復/最適化する、それでも、だめなら、新規データベースファイルに問題のファイルからテーブル等をインポートしてそれを使用することで解決しませんか。
 

投稿日時: 18/12/13 11:01:40
投稿者: ぽろんちょ

hatena様
 
ご返信ありがとうございます。
 
ファイルを修復/最適化ではやはりエラーが出てしまいました。
そこで、新しくファイルを作成し、そこにオブジェクトを全てインポートして、インポート定義も
作成し直したところ、エラーが出なくなりました。
 
毎日使用するものなので、アドバイス大変助かりました。
お忙しいところ有難うございました。