- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:レコード移動について)
レコード移動について
このQ&Aのポイント
- 単票フォームで複数のレコードがあります。レコードを1つずつ移動して、現在のデータ番号を表示し、最後のレコードになるとメッセージを表示して終了したいですが、データベース画面から直接フォームを開くと、最後のレコードになってしまいます。記述の問題か、フォーム自体の問題か教えてください。
- 単票フォームに複数のレコードがあります。レコードを1つずつ移動させ、現在のデータ番号を表示し、最後のレコードになると終了するようにしたいですが、データベース画面からフォームを開くと、最後のレコードになってしまいます。問題の原因は記述か、フォーム自体か教えてください。
- 単票フォームにいくつかのレコードがあります。レコードを1つずつ移動させ、現在のデータ番号を表示し、最後のレコードになると終了するようにしたいです。しかし、データベース画面からフォームを開くと、直接最後のレコードになってしまいます。問題の原因を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#4564
回答No.1
FAQですが、DAOのRecordset.RecordCountプロパティは、レコードを全件読み込んでから値を返すのではなく、現在読み込み中の値を返します。 正確な値が必要な場合、MoveLastメソッドを実行して最終レコードに移動してからRecordCountプロパティを参照する必要があります。 Private Sub Form_Current() Dim lngRecCount As Long Me.RecordsetClone.MoveLast lngRecCount = Me.RecordsetClone.RecordCount If Me.CurrentRecord >= lngRecCount Then (以下、略) ちなみにADOでは仕様が変わっており、MoveLastしなくても、全件の件数が返ります。 ただし、使用するDBプロバイダによっては、adUseServerではRecordCountが取得できない(-1が返る)という問題があります。