2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【MS Update影響】ADO / pyodbc で Access への INSERT が突然失敗する原因と対策(80004005)

Posted at

【解決】ADO / pyodbc で Access への INSERT が突然失敗する(-2147467259 / この操作は、このタイプのオブジェクトには実行できません)

事象

2025年12月15日、突然、以下のようなエラーが発生するようになりました。

実行時エラー '-2147467259 (80004005)'
この操作は、このタイプのオブジェクトには実行できません。

発生条件

  • VBA(ADO)から Access(.accdb)へ INSERT
  • Excel / CSV など 外部ファイルを参照して INSERT
  • Python + pyodbc + Access でも同様
  • コードは今まで正常に動作していた
  • MS Update 後に突然発生

影響例

  • Excel → Access への INSERT(ADO)
  • CSV → Access への INSERT(pyodbc)
  • Access での外部データ参照クエリ

👉 「外部(リモート扱い)データソースを跨ぐクエリ」 がすべて失敗するようになります。

原因(結論)

Microsoft Update により、Jet / ACE Engine のセキュリティ設定が強化されたことが原因でした。

具体的には、

外部(Remote)データベース・ファイルを参照するクエリを
デフォルトでブロックする仕様に変更

されたようです。

その結果、従来動いていたコードでも
80004005 という 非常に分かりづらいエラーで失敗します。

同様の事例

Stack Overflow(Python + pyodbc)

Microsoft公式KB

KB5002984

Configuring Jet Red Database Engine and Access Connectivity Engine to block access to remote databases
https://support.microsoft.com/en-us/topic/kb5002984-configuring-jet-red-database-engine-and-access-connectivity-engine-to-block-access-to-remote-databases-56406821-30f3-475c-a492-208b9bd30544


対策(今回行った方法)

Microsoft公式KBに記載されている ACE側の回避策を適用しました。

レジストリに DWORD を追加

追加場所(Microsoft 365 / Click-to-Run 環境)

HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\Office
\ClickToRun
\REGISTRY
\MACHINE
\Software
\Microsoft
\Office
\16.0
\Access Connectivity Engine
\Engines

追加する値

種別 名前
DWORD AllowQueryRemoteTables 1

結果

  • ADO VBA からの INSERT → 正常に動作
  • Python + pyodbc からの INSERT → 正常に動作
  • 既存コードの修正なしで復旧

👉 MS Update でデフォルトが「0(ブロック)」相当になった可能性が高いと考えています。

注意点(重要)

この設定は セキュリティを緩める変更です。

  • 本当に必要なPC / 環境だけに適用する
  • レジストリ変更前にバックアップを取る
  • 将来の MS Update で再度変更される可能性あり

社内展開する場合は、
手順書化・影響範囲の明確化を強くおすすめします。

まとめ

  • エラーの原因は コードではなく環境(ACEの仕様変更)
  • -2147467259 (80004005)ACEのセキュリティ制限に引っかかったサイン
  • AllowQueryRemoteTables=1 の追加で復旧可能
  • 同様の事象は VBA / Python / pyodbc 共通で発生する

同じエラーで困っている方の助けになれば幸いです。

参考リンク

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?