- ベストアンサー
カレントレコードがありません(レコードセレクタ)
- 下方向に選択する場合は問題ないが、上方向に選択すると「カレントレコードがありません。」とエラーが出る
- SelTopプロパティで横向き▼の位置を特定し、SelHeightプロパティで選択レコード数を取得するが、上方向に選択するとループしない
- 上方向に選択レコードがある場合の対処方法を知りたい
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>上方向に選択レコードがある場合どうすれば良いでしょうか? SelTopプロパティ、SelHeightプロパティ を初期化して、選択し直せばいいのでは。
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
説明が前後してしまいますが、 最初のコードは何のイベント で書かれているコードなのかを 聞いていればもう少し短い スレッドになったかもしれません。
- piroin654
- ベストアンサー率75% (692/917)
コードは良いようです。 「やり直せば。」というのは上への 選択がコード上エラーを起こす 仕様になっているので選択し直せば という意味です。他意はありません。 Form_MouseUpイベントを利用すれば、 レコードが表形式でメインフォーム に表示されていれば、最初のコードは 以下にできます。サブフォームの場合は SelTop、SelHeightの各プロパティを 変数に格納し、変数を利用して RecordsetCloneを取得します。 その詳しい説明はmeronさんが参考に されたページにすべて書いてあります。 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim rs As Recordset Dim i As Long Set rs = Me.RecordsetClone rs.MoveFirst '選択されている最初のレコードへ移動 rs.Move Me.SelTop - 1 For i = 1 To Me.SelHeight MsgBox rs![所在地] & rs![地番] rs.MoveNext Next i End Sub
- piroin654
- ベストアンサー率75% (692/917)
失礼しました。 変数にプロパティの値を格納 していないので、単純に やり直せば、ということ です。Seltopプロパティの 意味がわかっていれば、この 場合はSeltopの位置より上方 は選択対象からははずれます。
お礼
MouseUpイベントで行けそうです。 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Me.SelHeight > 0 Then Debug.Print SelTop & "番目から" & SelHeight & "個" End If End Sub 問題なさそうでしょうか?。。。。
補足
回答ありがとうございます。 Access2007を使用しています。 Seltopプロパティの意味はわかっているつもりですが、 それでは、どのタイミングで変数に格納すればよいのでしょうか? 「やり直す」とはどのような意味でしょうか?
お礼
いろいろ教えて頂きありがとうございました。