• ベストアンサー

ACCESSのレポートについて

質問です。 くどいようですが、切実なのでもう一度・・・ アクセスのレポートを開いたときに キーボードの操作を「英数文字入力」に切り替えるには どうしたらよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

>フォームを経由でということなら、テキストボックスで、お望みのIMEの設定のもを作成しておき、 >そこに、フォーカスを移してからレポートを開けば、APIを使わなくてもできますね。 なるほどその手はありますね。 純粋にプログラムでIMEを制御する方法しか考えていなかったものですから(^^; でもそんな事をするぐらいなら、やっぱりフォーム上に IME使用不可のテキストボックスでも用意しておき そこに条件を入力して、クエリはそのテキストボックスを 参照する形にした方が良さそうですね。

hamu-ha
質問者

お礼

ありがとうございます。 プログラムは私には無理なのでフォームを利用する方向で 考え直します。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.5

> APIを使ったプログラムを組み込まなければ実現できそうにありません。 フォームを経由でということなら、テキストボックスで、お望みのIMEの設定のもを作成しておき、 そこに、フォーカスを移してからレポートを開けば、APIを使わなくてもできますね。

hamu-ha
質問者

補足

ありがとうございます。 どうにかフォームを参照できるようにもっていくのがよさそうですね。 考え直します。

すると、全ての回答が全文表示されます。
回答No.4

ACCESS自体のIMEのモードを切り替える必要がありますので APIを使ったプログラムを組み込まなければ実現できそうにありません。 フォーム上の「印刷」ボタンを押した時にレポートを開くならば フォームモジュールで Option Compare Database Option Explicit Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long Private Declare Function ImmGetContext Lib "imm32.dll" ( _ ByVal hwnd As Long _ ) As Long Private Declare Function ImmReleaseContext Lib "imm32.dll" ( _ ByVal hwnd As Long, _ ByVal himc As Long _ ) As Long Private Declare Function ImmSetOpenStatus Lib "imm32.dll" ( _ ByVal himc As Long, _ ByVal fOpen As Long _ ) As Long Private Sub [ボタン名]_Click() Dim himc As Long himc = ImmGetContext(GetForegroundWindow) Call ImmSetOpenStatus(himc, 0) DoCmd.OpenReport "レポート名" Call ImmReleaseContext(GetForegroundWindow, himc) End Sub とでもしておけば、レポートを開く前にIMEをオフにしておけそうです。 データベースウィンドウから単純に開くだけだと レポートを開く前に処理を組み込んでおく事はできないため #3の方の回答どおりあきらめて頂くしかなさそうです。

すると、全ての回答が全文表示されます。
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.3

一般機能ではできないですね。 レポートをどのように開いているのかにもよりますが、データベースウィンドウから開いているのであれば、 あきらめてください。 フォームのコントロールを参照させるように作り変えればいいと思います。

すると、全ての回答が全文表示されます。
  • tihit2
  • ベストアンサー率17% (4/23)
回答No.2

 クエリーでパラメーター入力を設定しても、文字種を指定するのは、あらかじめ元になっているテーブルのデザイン画面で設定します。例えば、電話番号のようにゼロで始まる数字文字は半角英数で、文字はテキストで文字数は20文字にしておけば、クエリー、フォームの入力は、指定した文字種が反映されます。  それ以外の文字種でも入力は出来ますが、数値を指定してあるフィールドに関係ない文字を入力しても入力出来ない等のERRが起きます。  テーブルで入力条件を入れるのが基本です。  

hamu-ha
質問者

補足

クエリーで求めた値に対してパラメーター入力をしております。 この場合はどのようにすればよいのでしょう?

すると、全ての回答が全文表示されます。
回答No.1

具体的にどういった結果を望まれているかが良く分かりません。 「レポートを開いたとき」とありますが、ACCESSで 単純にレポートを開いた場合はレポートの内容が印刷されるだけです。 「レポートをデザインビューで開いた時」という事でしょうか? その場合は単にデザインを開く前の入力モードが 保持されているだけで、切り替えの必要性はあまりないように思われます。 レポートではなくフォームやテーブルを開いた場合の テキストボックスや各フィールド等への入力の事ならば テーブル、フォームをデザインビューで開き 各コントロール、フィールドのプロパティで 「IME入力モード」を設定すれば入力モードの制御は可能です。

hamu-ha
質問者

補足

クエリで、データの抽出条件を入れる設定になっています。 そのため、レポートを開いたときにパラメータで条件を聞いてきます。 そのときに半角英数のみの入力にしたいため、入力モードを切り替えたいと考えております。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A