レコードセレクタで選択された複数レコードの操作
http://support.microsoft.com/kb/407904/ja
を参考にして、下記のコードを作成しました。
横向き▼から下へShift+クリックで複数選択して、
実行すると問題はないのですが、添付画像のように
上方向に選択した場合は、
「カレントレコードがありません。」とエラーが出てしまいます。
どうやら
SelTopプロパティで横向き▼の位置を特定しているようで、
SelHeightプロパティで選択されているレコード数を取得しても
下方向に選択レコード数ループするようです。
上方向に選択レコードがある場合どうすれば良いでしょうか?
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
Debug.Print rs![所在地] & rs![地番]
rs.MoveNext
Next i
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
No.2
- 回答日時:
失礼しました。
変数にプロパティの値を格納
していないので、単純に
やり直せば、ということ
です。Seltopプロパティの
意味がわかっていれば、この
場合はSeltopの位置より上方
は選択対象からははずれます。
この回答への補足
回答ありがとうございます。
Access2007を使用しています。
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
問題なさそうでしょうか?。。。。
No.1ベストアンサー
- 回答日時:
>上方向に選択レコードがある場合どうすれば良いでしょうか?
SelTopプロパティ、SelHeightプロパティ
を初期化して、選択し直せばいいのでは。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/07 08:37
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
180g重量版レコードとは? 180...
-
ファイルメーカー 縦表示を横...
-
ファイルメーカーで新規レコー...
-
差込印刷で顧客別に複数行のデ...
-
access レポートで罫線...
-
ファイルメーカー8.0繰り返しフ...
-
アクセスデータベースのUnicode...
-
ファイルメーカーの自己連結に...
-
ファイルメーカーでレコード複...
-
FileMaker起動時に前回終了時の...
-
ACCESSのレコード操作で1つ前...
-
Accessのレポート上のテキスト...
-
Accessのクエリで1フィールドの...
-
アクセスで入力したデータの順...
-
差し込み文書のルールで if the...
-
accessのフォームに設置したボ...
-
アクセスのクエリ…
-
Accessクエリで特定の行を削除...
-
Accessのレポート機能で空白に...
-
Accessでボタンを押すと今日の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ADOで現在のレコードの次のレコ...
-
ACCESSのフォームで次のレコー...
-
Accessのレポートの集計に条件...
-
日付の加算・減算ってできますか?
-
アクセスデータベースのUnicode...
-
ホスト汎用機でのNDBアクセス方法
-
ACCESSのレコード操作で1つ前...
-
ファイルメーカーで最大シリア...
-
accessのマクロで「一時変数設定」
-
アクセスでのエクセルでいう行...
-
180g重量版レコードとは? 180...
-
ACCESSでのランダムのレ...
-
ファイルメーカーで検索条件の...
-
ファイルメーカーでレコード複...
-
PSQLで-- More --を表示しない方法
-
LIKEとINを同時に使いたい
-
access レポートで罫線...
-
Docmd.Findrecordで空白の検索方法
-
ACCESSで空白行を追加
おすすめ情報