• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:カレントレコードがありません(レコードセレクタ))

カレントレコードがありません(レコードセレクタ)

このQ&Aのポイント
  • 下方向に選択する場合は問題ないが、上方向に選択すると「カレントレコードがありません。」とエラーが出る
  • SelTopプロパティで横向き▼の位置を特定し、SelHeightプロパティで選択レコード数を取得するが、上方向に選択するとループしない
  • 上方向に選択レコードがある場合の対処方法を知りたい

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

>上方向に選択レコードがある場合どうすれば良いでしょうか? SelTopプロパティ、SelHeightプロパティ を初期化して、選択し直せばいいのでは。

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

説明が前後してしまいますが、 最初のコードは何のイベント で書かれているコードなのかを 聞いていればもう少し短い スレッドになったかもしれません。

meron_
質問者

お礼

いろいろ教えて頂きありがとうございました。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

コードは良いようです。 「やり直せば。」というのは上への 選択がコード上エラーを起こす 仕様になっているので選択し直せば という意味です。他意はありません。 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)
回答No.2

失礼しました。 変数にプロパティの値を格納 していないので、単純に やり直せば、ということ です。Seltopプロパティの 意味がわかっていれば、この 場合はSeltopの位置より上方 は選択対象からははずれます。

meron_
質問者

お礼

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 問題なさそうでしょうか?。。。。

meron_
質問者

補足

回答ありがとうございます。 Access2007を使用しています。 Seltopプロパティの意味はわかっているつもりですが、 それでは、どのタイミングで変数に格納すればよいのでしょうか? 「やり直す」とはどのような意味でしょうか?