• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブフォームのRecordSourceの件数を取得したい)

サブフォームのRecordSourceでデータの件数を取得する方法は?

このQ&Aのポイント
  • Access2007環境で、SQL Server 2005のデータベースを使用しています。メインフォームに表示された日付のデータをサブフォームに表示するために、RecordSourceを設定しています。
  • サブフォームのフォームヘッダーに置いたテキストボックスのコントロールソースを`=Count(*)`と設定しているが、`#エラー`と表示されてしまっています。
  • 質問者は困っていて、なぜエラーが発生しているか教えていただきたいと求めています。

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

  • ベストアンサー
回答No.3

DataCountではなくRecordCountでしたね。失礼しました。 この場合、RecordsetCloneでも問題ないと思いますが、Recordsetの方が効率がいいのではないかと思います。 RecordsetCloneを使用せざるを得ないのは、フォームに表示しているレコードを移動させずにレコード操作を行うような場合だったような気がします。

noname#208236
質問者

お礼

ありがとうございます。 大変参考になりました。

その他の回答 (2)

回答No.2

訂正です。 Form![FTop]!以下省略... ではなく Forms![FTop]!以下省略... でした。 また、サブフォームのテキストボックスなら =Forms![FTop]!以下省略... という記述ではなく =Recordset.なんとか という記述が可能だと思います。

noname#208236
質問者

お礼

お返事ありがとうございます。 以下の通りで親フォームから取得することができました。 また、いろいろ調べた結果RecordsetCloneでも取得できました。 どちらを使っても問題ないでしょうか? <親フォームレコードセット後の処理> Dim FS As Form Set FS = Forms![FTop]![FTop_sub].Form (1) Me!txt_RecCnt = FS.Recordset.RecordCount (2) If Not (FS.RecordsetClone.EOF) = True Then FS.RecordsetClone.MoveLast End If Me!txt_RecCnt = FS.RecordsetClone.RecordCount

回答No.1

Form![FTop]![FTop_sub].Form.Recordset.DataCountか何かで(DataCountという名前だったかどうか定かではありません)件数が取得できると思いますので、それをコントロールソースに設定してやればできると思います。 (=Form![FTop]![FTop_sub].Form.Recordset.DataCountのような感じ)

関連するQ&A