- ベストアンサー
フォーム画面をクリアしたい
access初心者のため、是非教えてください。 テキストボックスや、コンボボックスなどいろいろ混ざっているのですが、 次に入力する前に、フォームの画面を一度クリアしたいのですが どのようにしたらできますでしょうか? テキストボックスの名前など、規則性はなく、すべてフィールドの名前がついています。 ご回答のほど、よろしくお願い申し上げます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どうクリアするか指定してクリア。 For Each Ctl In Forms(FormName).Controls 'コントロールの種類を判別 If Ctl.ControlType = myControlType Then 'クリアタイプ別の処理 Select Case ClearType Case clNull Ctl = Null Case clBlank Ctl = "" Case clSpace Ctl = Space(Len(Ctl)) End Select End If Next 引用:http://www.moug.net/tech/acvba/0100021.html コントロール名で識別できたら未指定でクリア可。オススメ For Each myObj In Me 'テキストボックス(Nullをセット) If myObj.Name Like "txb*" Then myObj.Value = Null End If 'コンボボックス(Nullをセット) If myObj.Name Like "cmb*" Then myObj.Value = Null End If 'オプションボタン(フレーム内をクリア) If myObj.Name Like "flm*" Then myObj.Value = Null End If 'チェックボックス(Falseをセット) If myObj.Name Like "chk*" Then myObj.Value = False End If Next 引用:http://infith.com/system/access/form_clear/
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
非連結フォームのクリアで 既定値を考慮する、という解釈で。 Dim ctl As Control On Error Resume Next For Each ctl In Me.Controls With ctl Select Case .ControlType Case acTextBox, acComboBox If .DefaultValue <> "" Then If .DefaultValue Like """*""" Or .DefaultValue Like "'*'" Then .Value = Mid(.DefaultValue, 2, Len(.DefaultValue) - 2) Else .Value = .DefaultValue End If Else .Value = Null End If Case acOptionButton, acCheckBox, acToggleButton If .DefaultValue <> "" Then .Value = .DefaultValue Else .Value = Null End If Case acOptionGroup If .DefaultValue <> "" Then .Value = .DefaultValue Else .Value = Null End If Case Else End Select End With Next 演算コントロールは 「On Error Resume Next」 で無視。 その他のコントロールがあれば、適当に。
お礼
お礼が大変遅れまして申し訳ありません。 さっそくのご回答どうもありがとうございました。 私自身、勉強不足のため、内容はよく把握していませんが・・・ なんとかクリアすることができました。 本当にどうもありがとうございました。
- sora1515
- ベストアンサー率58% (54/92)
テキストボックスなど追加の際にデフォルトで付けられる名前(テキスト73)などの数字部をクリアしテキスト1にしたいという事でしょうか??
お礼
お返事と補足が遅れてしまい大変申し訳ありません。 早速のご回答、ありがとうございます。 是非、またご教授いただければと思います。
補足
言葉足らずで申し訳ありません。 クリアボタンをフォーム上に作成し、それを押すと 入力していたものがクリアされ、空白や0という規定値に もどす。という作業がしたいと思っています。 今は、次に入力する際、前者のデータがそのままの状態で、 残ってしまっているので。
お礼
お礼が大変遅れまして申し訳ありません。 さっそくのご回答どうもありがとうございました。 私自身、勉強不足のため、内容はよく把握していませんが・・・ なんとかクリアすることができました。 本当にどうもありがとうございました。