2022年7月のWindows Updateの影響で、Access環境にてエラーが発生することがあったのでご報告です。
事前に情報は頭にあったので、混乱せずに済みました。調べた内容は2022年7月22日現在の状況です。
Accessでファイルを開くときエラー発生
Microsoft Accessのファイル形式である「.accdb」とか「.mdb」「.mde」といったAccessのファイルをダブルクリックで開いたときにエラーが発生しました。
「イベントプロパティに指定した式 開く時 でエラーが発生しました:要求されたタイプ ライブラリまたはウィザードはVBAプロジェクトではありません。」
※これが英語で「Requested type library or wizard is not a VBA project」と表示される場合もあるようですが、同じ症状と考えていいようです。
続けて、
- マクロ名、ユーザー定義関数名、[イベント プロシージャ]以外の式が指定されています。
- 関数、イベント、マクロの評価でエラーが発生しました。
とエラーメッセージには記載がありました。
「ヘルプの表示」とある箇所を開くと、
「このエラーは、イベントのロジックの場所を評価できないためにイベントを実行できなかった場合に発生します。たとえば、フォームの "OnOpen/開く時" プロパティが =[フィールド] に設定されている場合、イベントが開始されたときに、マクロまたはイベントの名前が実行対象として予期されるため、このエラーが発生します。」
と記載があります。
調べる
調べた結果、2022年7月の月例更新(Windows、セキュリティ更新)が要因で発生しているAccessの不具合ということで間違いないようです。
■Microsoftの情報ページ
Error when trying to open an ACCDE/MDE file created in a different version of Access
※日本語のページ
別のバージョンの Access で作成された ACCDE/MDE ファイルを開こうとすると発生するエラー
ここを確認した限りでは、どうもAccess2013およびAccess2016(の一部)を利用している環境が問題になりそうです。
Microsoft 365で提供されるOfficeデスクトップアプリとかOffice2016以降(Access2019以降?)で採用されているクイック実行(C2RとかClick-to-Runと言われる)方式(のOffice環境)では、7月19日に(定例外の)修正プログラムが公開されており、Officeのアップデートでそれが適用されればエラーは発生しなくなる、ということのようです。
ボリュームライセンスなどで入手するMSIインストール(クイック実行じゃないSetup形式でインストーラが動作するタイプ)でPCにインストールしたAccess 2013/2016では影響を受けるも対処する定例外の修正プログラムが未リリースなので、すぐに何かできるわけじゃないことになります。
MSIインストール版となるOffice 2013/Office 2016 MSIの箇所には「利用可能な修正プログラム=2022 年 8 月 2 日予定 (変更される可能性があります)」と記載があります。まだ待ちのようです。
影響
例えば、
Office2013にAccess2016の環境では、差し込み印刷がエラー - treedown’s Report
Office2013とAccess2016共存環境で差し込み印刷時にエラー - treedown’s Report
このときはOffice Standard 2013環境にはAccess Runtime 2013をインストールすることで代替とし対処としましたが、この環境は影響を受けるも現時点で対処できない可能性が高いことになります。(MSIインストール版だから)
回避策
当然ですが、このエラーの起点となっているWindows Updateで適用されたセキュリティ更新プログラム(以下は例)
「2022-07 x64 ベース システム用 Windows 10 Version xxxx の累積更新プログラム (KB5015xxx)」
をアンインストールすることで、現象は収まります。
原因となった更新プログラムをアンインストールするので当然ですが、現象は収まる代わりに7月のセキュリティ更新で解消する脆弱性は残ります。これはイマイチよくない。
問題の発生する条件が単純にAccessのバージョン云々ではない、というのもポイントになります。
ファイル(.accdbや.mdb/.mdeなど)を作成したバージョンのAccessとは異なるバージョンのAccessで開こうとするとこのエラーになるということのよう。
そうなると、動作する別の環境を使って(例えばRuntimeが選べるなら、作成したバージョンのAccessと同じバージョンのRuntimeをインストールして)おき、問題の解消予定日8月2日までしのぐ、という方法もアリかもと思いました。(急ぎなら、ですが)
ただ、Office自体はクイック実行方式なのにAccessだけRuntimeを使っているという環境の場合、そのRuntimeはどのバージョンか把握していないと適切な対処にならないのかも。入れ替えるにしても、今使っているOfficeのバージョンによってインストール可能なRuntimeやAccessも限られますし。
でも、クイック実行方式のOffice(Accessも含めて)では本障害の対処は完了しているので、それなら、<Microsoft Access 2019 Runtimeはリリースしない? - treedown’s Report>にて調べていた、
「Microsoft 365 Access Runtime をインストールする」(正確にはRuntimeを入れ替える)
という選択肢が一番なのかなぁと思いました。最新版だし。