会社ではExcelの大量データファイルをAccessにインポート、あるいはリンクを行うことが多いのですが、先日、インポート中に突然 エラーメッセージが表示されインポートできない、あるいは エラーメッセージなくAccessが強制終了となる現象が頻発しました。項目数も多いExcelであったため、データ量の制限によるものと思っていたのですが、自宅のハイエンド寄りのPCで再現してみると、エラーが生じることもなくインポートは完了。
会社で再度エラーとなった場合の備忘録も兼ねて、エラーの状況と今回 ハイエンド寄りのPCにて エラーなくインポート完了となった状況について記載します。なお、当記事はテクニカル的な事項、根本的な解決手段を記載するものではありません。また、私の勘違いによる記載もあろうかと思います。
Access、データインポートで生じたエラーの状況
セキュリティの関係上、会社のデータを自宅のPCで使用することができないため、会社で使用のデータ量よりも多いデータを用いて自宅で検証。また、エラーの状況は記憶の範囲での記載です。
なお、エラーが生じた会社のPCのスペックは以下の1、エラーが生じなかった自宅のPCのスペックは2です。会社のPCはWordやOutlook、データ量の少ないExcel向けであり、大量データではエラーが出るのも当然とも思います。
- Celeron 3965U / 2コア 2スレッド、メモリ 12GB DDR3、PCIe SSD。具体的には「富士通 U938/T」
- Core i7-1360P / 12コア 16スレッド、メモリ 32GB DDR4、PCIe SSD。具体的には、こちらの記事の「ThinkPad E14 Gen 5」
▼上記1のPCでのエラーの状況
- インポート元の、Excel データ行数は10~20万行、項目数はおそらく100個ほど(項目数が多すぎです)。Accessのファイル容量 2GB制限なし。
- データはローカルのSSDに保存。Accessにて、Excelからのデータインポート、データリングともにエラー発生。
- 同じ規模のデータでも、エラーが生じないことも多いが、以下の画像の「外部データベースドライバー(1)で予期しないエラーが発生しました」のメッセージ(今回、自宅のPCで再現)でインポートエラー、あるいはメッセージを伴わず、Accessが強制終了となる現象。
- 上記エラーに対して、項目数を削減し(削減数の記憶なし)、何とかインポートを完了。
▲▼上のエラーメッセージにおいて、以下のMicrosoft コミュニティ・その他のサイトに2017年10月に同メッセージのエラーが生じ、「Windows UpdateのKB4041676をアンインストールすると解消します」との書き込みが多数あります。ただし、2024年1月現在では、上記事項に起因するものではないように思います。
Excel VBAで『外部データベースドライバで予期しないエラーが発生』、Microsoft コミュニティ
Excelエクスポートもしくは、インポートの際にエラーメッセージが表示され、処理が中断する現象について
Access、Excel 大量データのインポートの検証
今回、自宅PCのExcelにて検証用に、約50万行・項目数 150個のデータを生成しました。Excelのファイルサイズは、上の画像のとおり 約289MBと、私の会社でのExcelではあり得ないサイズです(100MB近辺は多数あります)。このExcel ファイルを以下のスペックのPCでAccessへインポートし、上の段落のエラーを再現しました。なお、Excel / Accessともに、サブスクリプションのOffice 365です。
- 会社のPCより やや上位の、Core m5-6Y54 / 2コア 4スレッド、メモリ 8GB、SATA SSD、Windows 11のバージョンは21H2。具体的には、こちらの記事の「Let’s note CF-RZ5」
- 前述のCore i7-1360P / 12コア 16スレッド、メモリ 32GB DDR4、PCIe SSD、Windows 11のバージョンは22H2。具体的には、こちらの記事の「ThinkPad E14 Gen 5」
それぞれ2回確認しましたが、結果として、1のPCでは2回とも「外部データベースドライバー(1)で予期しないエラーが発生しました」のメッセージを伴い インポートエラー。2のPCでは2回とも インポート完了しました。また、1のPCでは、Excelの行数を約50万から約2万に削減すると、Accessへのインポートは難なく完了。
エラーが生じた原因は確認できませんが、2017年10月の同エラーメッセージでは「Windows UpdateのKB4041676」に起因したようであり、Windows 11のバージョン・セキュリティアップデートの相違(21H2 vs 22H2)と、PC スペックの双方によるものでしょうか。
▼Excelにて約50万行・150項目のデータを生成し、2つのPCでAccessへのインポートを検証。
▼Core i7-1360P / 12コア 16スレッド、メモリ 32GB DDR4、PCIe SSDのPCでは、以下の画像の設定時より 約5分でAccessへのインポートを完了。なお、大量データのインポートであるため、ファンがフル回転に近い勢いで回っていました。
▼Core m5-6Y54 / 2コア 4スレッド、メモリ 8GB、SATA SSDの低スペックのPCでは、インポート開始から約3分で、以下の「外部データベースドライバー(1)で予期しないエラーが発生しました」のメッセージを伴い、Accessへのインポートエラー。エラーメッセージをクリックすると、Accessが強制終了となることもあります。
まとめ
大量データのExcelをAccessにインポートする際にインポートエラーとなる現象について、低スペックのPCとハイエンド寄りのPCにて確認してみました。
結果、ハイエンド寄りのPCではインポートできたものの、低スペックのPCでは「外部データベースドライバー(1)で予期しないエラーが発生しました」のメッセージを伴い、インポートエラーに。
同エラーメッセージは2017年10月に多く生じ、当時はWindows アップデートに起因するものだったようです。2024年1月の現在ではバグも解消されているはずですが、Windows 11のバージョン(今回検証の21H2 vs 22H2、セキュリティアップデートも含む)と、PCのスペックに依存するようにも感じます。今回エラーが生じたPCのWindows 11のバージョンアップ後に、あらためて確認してみます。
コメント