#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved