アクセス担当のまみです。
フォーム上のテキストボックスやコンボボックスに入力した値を消してくれるクリアボタンってとっても便利ですね。
ボタン一つで全部消してくれる!
そんな処理を可能にしてくれるコード自体はとっても簡単なんだけど、テキストボックスやコンボボックスの数だけ必要なんです。
数が多くなってくるとそれだけでとっても長いコードになっちゃいます・・・
私も全部まとめてクリアする方法なんて知らなかった頃、一つずつ書く方法しかないのかなぁ。何かいい方法ってないのかなって思ってました。
まとめてクリアする方法を知ってからはとっても重宝しています。
今回は、全部まとめてクリアする方法をお伝えしますね。
フォームのデータをまとめてクリアする方法
実際に使用したいファイルがある場合にはそのファイルでやってみてくださいね。
ここでは、説明のために「営業日報」ファイルを使用します。
同じファイルを使用したいなって場合は下記の記事から順番に作成してみてくださいね!
ファイルの準備ができたら、「F_営業日報」フォームをデザインビューで開きましょう。
では、「F_営業日報」フォームにクリアボタンを配置しましょう。
名前 | btnクリア |
標題 | クリア |
①「btnクリア」を選択した状態でプロパティーシートの②「イベント」タブを選択して、クリック時に「イベントプロシージャ」を選んでコードの画面を表示します。
「Private Sub btnクリア_Click()」と「End Sub」の間に下記のコードを追加しましょう。
Dim clear As Control On Error Resume Next For Each clear In Me.Controls With clear If .ControlType = acTextBox Or acComboBox Then .Value = "" End If End With Next clear
Dim 変数 As データ型
Dim clear As Control・・・変数clearを使わせてくださいねって宣言しています。
On Error Resume Next・・・オートナンバー型があったりとかでエラーがあっても無視してねって意味です。
.ControlType = acTextBox Or acComboBox・・・ここでテキストボックスとコンボボックスを指定しています。
[quads id=2]
では「F_営業日報」をフォームビューに切り替えて動作確認してみましょう。
何かデータを入力して、「クリア」ボタンを左クリック!
では、登録ボタンの現在のコードを見てみましょう。
赤枠で囲ってある部分が、クリア処理の部分です。
一つずつクリア処理書いていくにはそろそろ限界?な量になってきてますね。
この部分を今回のコードに書き換えちゃいましょう。
動作確認もしっかりしておいてくださいね!
まとめ
テキストボックスやコンボボックスの名前に関係なく、まとめてクリアできるってとっても便利ですよ。
ぜひ実践で使ってみてくださいね!