プロが教える店舗&オフィスのセキュリティ対策術

フォームを開いたとき、どこにもフォーカスを当てたくないです。

アクセス2003です。
フォームにテキストボックスを1つ設置して、そのフォームを開くと
フォーカスがテキストボックス上で、点滅しますが
どこにもフォーカスを当てない方法あるのでしょうか?

Private Sub Form_Open(Cancel As Integer)
Me.詳細.SetFocus
End Sub

とするとコンパイルエラーになってしまいます。
不可能でしょうか?よろしくお願い致します。

A 回答 (1件)

> どこにもフォーカスを当てたくないです



これを実現した後の操作はどのようになっていますか。
・マウスを使ってターゲットをクリックして・・・
・「Enter」「Tab」キーで移動したい・・・

見た目で良いでしょうか。
簡単な方法では、透明なコマンドボタンを配置して、そこにフォーカスを移動します。
配置場所としては、クリックしなさそうな場所や、大きさを極小さくとか・・・
・コマンドボタン「btnDmy」を作成します。
・プロパティを変更していきます。
 「透明」を「はい」
 「タブストップ」を「いいえ」、「タブ移動順」を先頭に

Form_Open なり Form_Load で Me.btnDmy.SetFocus を記述します。

「Enter」キーが押された時に、あるところにフォーカスを動かしたければ、
そのボタンの「クリック時」に処理を記述すればよいと思います。
「Tab」キーでは次に移動します。

非連結のフォームとか、帳票フォーム等でコマンドボタンが配置できれば上記で。
配置できないデータシート表示の場合は、レコードを選択してあげれば、
一ヶ所が強調されることはなくなります。

Dim bFirst As Boolean

Private Sub Form_Load()
  bFirst = True
End Sub

Private Sub Form_Current()
  If (bFirst) Then
    DoCmd.RunCommand acCmdSelectRecord
    bFirst = False
  End If
End Sub

これはデータシート表示だけではなく、連結したフォームで使えるものになりますが、
次の操作でマウスで選んであげる動作が必要になります。
(「Enter」「Tab」キーでは選択レコードが変わるだけです)
また、フォームの構成により使えない方法だったりと。

前者の方が良いと思いますが、参考にする/しない等々自己責任でお願いします。
    • good
    • 1
この回答へのお礼

とても参考になりました。ありがとうございました。

お礼日時:2011/12/07 21:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A