#251 データシートのフォームをESCキーで閉じるには? フォーム、VBA

単票形式や表形式のフォームであれば、[閉じる]ボタンを配置し、さらにそのボタンに「キャンセルボタンプロパティ→"はい"」の設定をすれば、ESCキーでそのフォームを閉じるようにすることができます。しかし、データシート形式のフォームの場合は、たとえ[閉じる]ボタンをデザイン上で配置しても、フォームビューの状態では表示されず、キャンセルボタンの設定は機能しません。

そこで、"キークリック時"イベントを利用して、直接、キーボードからのキー入力をチェックするようにします。そして、押されたキーがESCキーであれば、そのフォームを閉じるようにします。それには、以下のイベントプロシージャをそのままフォームのモジュールに貼り付けてください。

※なお、この機能を使うためには、フォームの「キーイベント取得」プロパティを"はい"に設定しておく必要があります。そうしないと、現在フォーカスのあるテキストボックスでの"キークリック時"イベントだけが発生し、フォームの"キークリック時"イベントは発生しません。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'キークリック時

  If KeyCode = vbKeyEscape Then
    'ESCキーでこのフォームを閉じる
    DoCmd.Close acForm, Me.Name
  End If

End Sub
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved