使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
こんばんは。MukkuMukuです。
なんか変だなと思っていたことがあります。ちょっと確認してみてって感じなのですけど。
[Accessのオプション]→[クライアントの設定]→[テータシート上でIMEを制御する]
にチェックしてあるとありゃ?って感じがしないでもない。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
>access2010でテキストボックスのIME設定を
> IME入力モード保持:いいえ
> IME入力モード:オフ
> IME変換モード:無変換
>上記設定にしている状態で、書式を設定していると
>該当のテキスボックスへカーソルが移動した時に
> IME入力モード:半角英数(設定通り)
> IME変換モード:一般(勝手に変換)
>となり、変換モードが無変換から一般へ強制変換されてしまいます。
>さらに、一度、該当のテキストボックスにカーソルがいってしまうと
>以後、入力モードの保持状態がおかしくなり、入力モードを手動で切り替える必要があるなど
>非常に手間になっています。
>IMEはMicrosoft Office IME 2010やATOKを使用しています。
>調べたところマイクロソフトの修正プログラムは見当たらないのですが、
>プログラムで制御する以外にIMEが設定通りに機能する簡単な方法はないでしょうか?
この件の対応が遅れてしましましたが、おおよその現象が判明しましたので内容を更新しました。
最初に挙げた現象と異なるため、語弊を招くことになって申し訳ありません。
書式の設定をいれることに自体は通常運用であれば特に問題ありませんでしたが
以下の操作で不具合が発生してしまいます。
パターン1
①.画面入力中にサムブフォーム内の書式設定のあるテキストボックスへカーソル移動
②.レコードソースの再設定を行う(処理中止などで画面の初期化をする時に使用)
③.メインフォームの非連結テキストボックスへカーソル移動又は
サブフォーム内の書式設定のあるテキストボックスへカーソル移動
④.サブフォーム内の非連結テキストボックス又はコンボボックスへカーソル移動すると
③のIME入力モードに強制変換される
つまり、②の初期化を行わなければ現象は発生しません。
また、すべてIME入力モード保持:いいえの設定です。
初期化時に以下のコードを実行すると発生してしまいます。
Me.xxx.SUB.Form.RecordSource = "SELECT * FROM xxx ORDER BY xx"
パターン2
①.書式設定「数値」のあるテキストボックス「直接入力・無変換」から検索フォームなどの画面を新たに呼び出す
(この時、検索フォームの初期カーソルは「全角・一般」のテキストボックスで①の時点では正常)
②.一度検索フォームを閉じる
③.再度、①を行う
④.検索フォームのテキストボックスがでIMEが「無変換・一般」に強制変換される
不思議なのが、④の状態で検索フォームを閉じて、呼び出すと正常に戻ります。
つまり、呼び出して閉じるを繰り返すと、「正常」→「強制変換」と繰り返しになります。
ちなみに別フォームを開くのに特殊な処理はしていません。
そして、Microsoft Office IME 2010での対応は直接入力のボックス全てを半角英数にすることで
正常に動作しました。
また、IMEをプログラム上で制御してみましたが何故か反映されません。
値はプログラムで指定した値になっていますが、実際のIMEを見ると変わっていませんでした。
APIでも作成してみましたが、半角英数のみが反映できたのでパターン1は解決しますが、
パターン2の全角が依然として強制変換されてしまいます。
書式設定のない、テキストボックスではプログラム制御できていたので、コードの記述ミスではないと思います。
長くなりましたが、すこし特殊なパターンで発生しているのと
Microsoft Office IME 2010は一応回避できますがATOKでは半角英数の対応が有効ではありません。
本プログラムを使用しているユーザーが業務上ATOKを使用する必要があるため、別の対応を検証しています。
もう少し自分で検証してみたいので、しばらくこのスレッドを残しておきます。
使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
こんばんは。MukkuMukuです。
なんか変だなと思っていたことがあります。ちょっと確認してみてって感じなのですけど。
[Accessのオプション]→[クライアントの設定]→[テータシート上でIMEを制御する]
にチェックしてあるとありゃ?って感じがしないでもない。
質問作成者が受け入れた回答
こんばんは、MukkuMukuです。
データシート上でIMEを制御する は関係ないと。。。。
IME入力モード:オフ
が
IME入力モード:半角英数(設定通り)
とか、設定している書式/データ型などちょっとわからないので状況を現認できていません。
IME入力モード:コントロールなし っていうのはどうなんでしょう
MukkuMuku さん、いつもアドバイスありがとうございます。
amott_999 さん ClaireSSuport さん、こんにちは。
Answers への投稿、ありがとうございます。
ClaireSSuport さんは問題が改善されたようでよかったです。
amott_999 さんの状況を試してみたのですが、新規で adb 形式のファイルを作成し、フォーム上にテキスト ボックスを作成したところ、IME の入力モードはプロパティの設定を反映していました。
一度新規で作成したファイルでフォームを作成し、動作が再現されるか試してみてはどうでしょうか。
もし、再現したときは、どのような手順で再現したかなどの情報を投稿するとほかの方もアドバイスしやすいかもしれません。
amott_999 さんからの返信、お待ちしております。
こんばんは ClaireSSuportです。私も同様な問題があったのでこのスレッドをフォローしていました。
今回、別の問題でアカウントを再設定(今までのアカウントを削除し新たに作成)したせいか、今まであきらめていたIME制御が効いているのに気が付きました。さっそく [テータシート上でIMEを制御する] を見てみたらCHKが外れていました。次にCHKを入れると今までと同様の症状に再現しました。
フォームでもデータシートでも制御不能です。
私の場合はテキストボックスの値が数値のところは効いていたのですが、日付、テキスト、メモ型が不能だったものです。それがCHKを外すと両方効くというのは設定の記述がおかしいですね。
今まで、MSのサポートにも問い合わせて、競合するソフトのせいであろうということであきらめていました。本当にありがとうございました。
回答ありがとうございます。
「データシート上でIMEを制御する」を設定では、
テーブル上で設定したプロパティは反映されて解決するのですが、
非連結のテキストボックスでは反映されない為、商品名などの検索フォームで不都合がでてしまいます。
やはりプログラムで書式設定したテキストボックスを制御するしかないでしょうか?
補足ですが、adp形式で作成しています。