3分あったら何をしますか?

Access 2003のフォームについてお教えください。

フォームデザインビューで、「Form1」にテキストボックスが1つ配置されています。
レコードソースは連結されているので、フォームビューで見ると現在10のテキストボックスが
フォームには表示されています。

やりたい事
フォームビューで見た時のコントロールの数をカウントしたい。ここでは、「10」という
結果が欲しいです。

そこで下記のコードを書き実行しましたが、「1」としか表示されません。
デザインビューで見ると、テキストボックスの数は1なので、それが表示
されている感じがします。

フォームビューで見た時のコントロールの数を数えるにはどのようにしたらよいでしょうか?

Private Sub Form_Load()

Dim ctl As Control
Dim counter As Integer

On Error Resume Next

counter = 0

For Each ctl In Me.Controls

'コントロールがチェックボックスか判別
If TypeOf ctl Is TextBox Then
counter = counter + 1
End If

Next ctl

msgbox counter

End Sub

A 回答 (2件)

フォームで表示してるレコードのデータ数を元にして、コントロール数を計算するとか。

「VBAでコントロールの数をカウント。結果」の回答画像1
    • good
    • 0
この回答へのお礼

なんと、実際にやって頂いて・・・頭が下がります。そして勉強になりました、ありがとうございます!

お礼日時:2012/09/10 01:26

Form1は単独のフォームとします。


質問の内容からフォームは表形式であると仮定します。
フォームビューで表示されるのはフォームのレコードソースの
レコード数と同じですから、実際にはテキストボックスの数
とはなりません。もし表示されているレコードの数が知りたい
のならばボタンのクリック時のイベントで、

Private Sub コマンド0_Click()
Dim rs As DAO.Recordset

Set rs = Me.RecordsetClone
MsgBox rs.RecordCount
End Sub

のようにします。
上記はDAOを使っているのでコード表の
ツールバーのツールから参照設定を選択し、
Microsoft DAO xx Object Library の項目に
チェックを入れ、OKとします。なお、xx は3.6のような数字です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。recordcount使えばできるのですね。勉強になります、ありがとうございました!

お礼日時:2012/09/10 01:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報