1

RecordsetClone.RecordCountサブフォームのレコード数を表示するために使用しています。

問題は、フォームが読み込まれたときにサブフォームの境界内に収まるものだけをカウントしていることです。表示するために下にスクロールする必要があるサブフォーム内のレコードはカウントされません。

これは の正常な動作RecordsetClone.RecordCountですか? サブフォーム内のすべてのレコードを、下の境界線の下にあるものも含めてカウントする別の方法はありますか?

4

1 に答える 1

2

どうでも。を実行する前に、正確なRecordCountを使用する必要があることがわかりました。同じ問題を抱えている人への以下のコンテキストとコード:MoveLastRecordCount

コンテキスト:

すべての検索フィルター (テキスト ボックス) と [検索] コマンド ボタンを保持するメイン フォームを使用する検索ツールを設計しました。検索結果は、検索フィルターの下のサブフォームに表示されます。検索で返された結果の数をtxtResultsNumRecordCountというメイン フォームのテキスト ボックスに渡すために使用したいと考えていました。

これを達成するために次のコードを使用していました。

Dim ResultNum As String

ResultNum = Trim(Me.MySubForm.Form.RecordsetClone.RecordCount)

Me.txtResultNum.ControlSource = "=""("" & " & ResultNum & " &"")"""

残念ながら、(少なくとも私にとっては) これは、ユーザーが下にスクロールする前にサブフォームに表示できるレコードの数にしかカウントされないため、すべてのレコードのカウントが不正確でした。

MoveLastを行う前に正確なカウントを取得するにはRecordCount:

Dim ResultNum As String

Dim rs As Recordset

    Set rs = Me.MySubForm.Form.Recordset

        rs.MoveLast

        ResultNum = rs.RecordCount

        Me.txtResultNum.ControlSource = "=""("" & " & ResultNum & " &"")"""

        rs.MoveFirst

    Set rs = Nothing

MoveFirst最後にも使用したことに注意してください。これは、'MoveLast` が自動的にサブフォームの最後のレコードにフォーカスを移動するためです。これは私が望んでいたものではありません (ユーザーが最初のレコードを見て、下に移動することをお勧めします)。

于 2013-11-14T17:31:52.217 に答える