- ベストアンサー
サブフォームのRecordSourceでデータの件数を取得する方法は?
- Access2007環境で、SQL Server 2005のデータベースを使用しています。メインフォームに表示された日付のデータをサブフォームに表示するために、RecordSourceを設定しています。
- サブフォームのフォームヘッダーに置いたテキストボックスのコントロールソースを`=Count(*)`と設定しているが、`#エラー`と表示されてしまっています。
- 質問者は困っていて、なぜエラーが発生しているか教えていただきたいと求めています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
DataCountではなくRecordCountでしたね。失礼しました。 この場合、RecordsetCloneでも問題ないと思いますが、Recordsetの方が効率がいいのではないかと思います。 RecordsetCloneを使用せざるを得ないのは、フォームに表示しているレコードを移動させずにレコード操作を行うような場合だったような気がします。
その他の回答 (2)
- tsukasa-12r
- ベストアンサー率65% (358/549)
訂正です。 Form![FTop]!以下省略... ではなく Forms![FTop]!以下省略... でした。 また、サブフォームのテキストボックスなら =Forms![FTop]!以下省略... という記述ではなく =Recordset.なんとか という記述が可能だと思います。
お礼
お返事ありがとうございます。 以下の通りで親フォームから取得することができました。 また、いろいろ調べた結果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
- tsukasa-12r
- ベストアンサー率65% (358/549)
Form![FTop]![FTop_sub].Form.Recordset.DataCountか何かで(DataCountという名前だったかどうか定かではありません)件数が取得できると思いますので、それをコントロールソースに設定してやればできると思います。 (=Form![FTop]![FTop_sub].Form.Recordset.DataCountのような感じ)
お礼
ありがとうございます。 大変参考になりました。