|
同じ環境が無いので検証できませんが、オブジェクト名に 2 バイト文字を
使っているからではないでしょうか。
仕様上は明記されていませんが、古い Windows OS、古い Access ではマルチ
バイト キャラクターセット(以下 MBCS)を考慮していない実装が混じって
いるため、無用なトラブルを避けるためにオブジェクト名には 2 バイト文字
を使わないというのが鉄則でした。
Unicode をサポートした OS とアプリの組み合わせでは多少マシになったよう
ですが、それでも多くの開発者は未だにオブジェクト名には 2 バイト文字を
使わないようにしているはずです(と言うか、少なくとも私はそう)。
Access が Unicode をサポートしたのは Access 2000 以降、Windows OS が
Unicode をサポートしたのは NT 系の 4.0 以降です。
Windows 98, ME は Unicode 部分サポートのため、Access 97 と Windows 98
というのは MBCS の取り扱いが弱い組み合わせの代表例になります。
で、Access に限った話ではありませんが、MBCS における有名な問題の一つに
0x5c 問題というのがあります(他にもたくさんありますが)。
これは MBCS 文字の 2 バイト目がたまたま 0x5c だと、エスケープシーケンス
の「\」と誤認して処理がおかしくなるというもので、代表的な該当文字に
「予」や「表」、「ソ」、「十」などがあります。
偶然かもしれませんが、今回の事例でフォーム名に該当文字が含まれている
のが気になりますね。
興味があれば、「0x5c」でググってみてください。
私だったら即刻オブジェクト名に 2 バイト文字の使用を禁止します。
どのみち今から Access 97 や Windows 98 を M$ が改修してくれる可能性は
無いわけですし、後はどう自衛するかだけではないでしょうか。
|
|