はじめに
数ヶ月前にユーザーから Access アプリケーションが正常に動作しなくなったと報告があり、6月に入ってから同僚が原因を調査することになった。
しかし、会社のPC環境(Windows 10 バージョン 22H2 / Office バージョン 2303)で対象のAccess アプリケーションを動かしてみても正常に動作してしまいます。
原因
動作しない原因として、フォーム名やクエリ名やDB列名には日本語(全角と半角)が使用されており、全角と半角が区別されるためにエラーになり動作しなくなっている。
以前、そんな記事を書いた。しかし、この問題は Windows Update によって解決したと記憶している。
Access のバージョンに依存性はなく Windows 10 バージョン 2004 / 20H2 /21H1 /21H2 上での Access アプリケーションで発生します。
Windows 10 バージョン 2004 以降で 半角カナのフォームを含んだ Access ファイルでエラーが発生する
もしかしたらユーザーのWindows 10のバージョンが古いのかも知れないと思ったのですが、ユーザーの環境は、Windows 10 バージョン 22H2 / Office バージョン 2208 となっていました。
OS上は問題ないのです。Officeのバージョンをユーザーと同じ 2208 にダウングレードしてみたところ、同じ現象が出るようになりました。
Office 2208 という観点から改めてネット検索してみたところ、バージョン 2206 から発生しているようです。
7月に入ってから今まで正常に動作していたがAccessがエラーになってしまいました。
エラーは、「INSERT INTO ステートメントに認識できないフィールド <〇〇> があります。~」です。
Office Standard(2013以前あり)のPCで、Runtime2016で動作しているAccessのシステムです。
プログラムやデータに変更が無く複数PCで同時期に発生し、次第に増えてきているため、
WindowsUpdate/OfficeUpdateが原因ではないかと思い調査したところ、
Officeバージョンによって動作が異なることがわかりました。
今まで動作していたAccess(Runtime2016)がエラーになってしまう
2022年08月30日 スタッフブログ 平川 開発
先月のアップデート以降、それまで全く問題なく動作していた処理が突然エラーを
起こすようになりました。AccessにてADOを使用する際の、全角半角の認識に関する
ルールが変わってしまったようです。
SQL実行時における全角・半角の識別について - 株式会社トウサイ
対応
Office バージョンを上げてもらう。
どのバージョンから改善されたのか分かりませんが、2303以降なら問題が発生しません。
Office バージョンを上げれない場合、Access ランタイムだけでも最新版を入れればエラーは出なくなるのではないかな。ランタイムなので開発は出来ないですけどね。
ちなみに、Windows 10 の NLS (National Language Support) バージョンは、既に 6.2 になっているので、 レジストリを直してもこの問題は解決しません。
最後に
Microsoftは、Windows Updateの際に全角と半角の区別で日本で問題になっていたのだから、Officeのバージョンアップの時でも全角と半角の区別問題を検証項目に上げていれば、同じことを起こさないで済んだはずなんだけどね。