• ベストアンサー

フォーム画面をクリアしたい

access初心者のため、是非教えてください。 テキストボックスや、コンボボックスなどいろいろ混ざっているのですが、 次に入力する前に、フォームの画面を一度クリアしたいのですが どのようにしたらできますでしょうか? テキストボックスの名前など、規則性はなく、すべてフィールドの名前がついています。 ご回答のほど、よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.2

どうクリアするか指定してクリア。 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/

maumama2525
質問者

お礼

お礼が大変遅れまして申し訳ありません。 さっそくのご回答どうもありがとうございました。 私自身、勉強不足のため、内容はよく把握していませんが・・・ なんとかクリアすることができました。 本当にどうもありがとうございました。

その他の回答 (2)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.3

非連結フォームのクリアで 既定値を考慮する、という解釈で。   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」 で無視。 その他のコントロールがあれば、適当に。

maumama2525
質問者

お礼

お礼が大変遅れまして申し訳ありません。 さっそくのご回答どうもありがとうございました。 私自身、勉強不足のため、内容はよく把握していませんが・・・ なんとかクリアすることができました。 本当にどうもありがとうございました。

  • sora1515
  • ベストアンサー率58% (54/92)
回答No.1

テキストボックスなど追加の際にデフォルトで付けられる名前(テキスト73)などの数字部をクリアしテキスト1にしたいという事でしょうか??

maumama2525
質問者

お礼

お返事と補足が遅れてしまい大変申し訳ありません。 早速のご回答、ありがとうございます。 是非、またご教授いただければと思います。

maumama2525
質問者

補足

言葉足らずで申し訳ありません。 クリアボタンをフォーム上に作成し、それを押すと 入力していたものがクリアされ、空白や0という規定値に もどす。という作業がしたいと思っています。 今は、次に入力する際、前者のデータがそのままの状態で、 残ってしまっているので。

関連するQ&A