Accessで「レコードに検索キーが見つかりませんでした」と言うエラーがでた場合の対処方法
Accessでファイルインポート時に
「レコードに検索キーが見つかりませんでした」
と言うエラーがでる事があります。
Office製品の中でも特にACCESSはエラーメッセージの意味がよく分からないんですけど、これは極めつけに意味が分かりません。
このエラーメッセージがなぜ出るのか、どうすれば解決するかまとめました。
まずは対処法から
対処方法は3つあります。
ひとつめは不要なテーブルを削除後にACCESSの「データベースツール」タブにある「データベースの最適化/修復」をクリックする、です。

もうひとつは「新たにデータベースを作り、そこへインポートする」です。
最後は「インポートしたいファイルをリンクする(インポートしない)」です。
どの方法でも対応しやすい方法で行って頂ければと思います。
原因はファイルサイズ
これは「ファイルサイズが2GBを超えると発生する」エラーの様です。
大体1.7GBくらいまで大きくなったデータベースへさらに大量のデータをインポートしようとするとこのエラーが発生します。
インポート処理の最後で発生しなくてもとは思いますが…。
それとエラーメッセージに「検索キー」と出てくるので、インデックスとかそういう感じに思えるのですが関係ないのもトラップだと思います。
回避するには2GBを超えない様にしてやればいいので、不要なテーブルを削除してメンテするか別のデータベースにインポートする、というのが解決策となります。
リンクした場合のデメリットについてちょっとだけ
解決策で上げた「インポートせずリンクする」方法ですが、参照クエリに使用した場合は明らかにパフォーマンスが落ちます。
別のデータベースにインポートした場合はまだましですが、特にCSV等を直接リンクしている場合の速度低下は無視できないレベルです。
ですが私の場合、頻繁にデータが更新されるけど一度参照するだけなデータはリンクで使う事も多いです。
というのも
- 何度もインポートするのは面倒
- インポートが多いとデータベースのファイルサイズが大きくなりやすい
- リンクならファイル差し替えるだけで最新データにできる
という点にメリットを感じている為です。
ですがデータ量や更新が多いのでリンクしているが他のデータと併せて参照する事が多いものはテーブル作成クエリでテーブル作っちゃってます。結局インポートしている感じですね。
おわりに
ACCESSのエラーメッセージは意味の分からないことが多いです。
お陰でどれだけ悩んだことか。
ACCESSは大量データを手軽に扱えて便利ではあるのですが、どんどんデータベース化してきてるエクセルにそのうち取って代わられる気もしている今日この頃です。
ディスカッション
コメント一覧
まだ、コメントがありません