Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1217 / 2272 ツリー ←次へ | 前へ→

【8193】件数指定のSQLについて くろすけ 06/7/10(月) 18:36 質問[未読]
【8195】Re:件数指定のSQLについて sim 06/7/10(月) 20:28 回答[未読]
【8196】Re:件数指定のSQLについて hatena 06/7/10(月) 23:17 回答[未読]
【8214】Re:件数指定のSQLについて くろすけ 06/7/12(水) 9:22 お礼[未読]

【8193】件数指定のSQLについて
質問  くろすけ  - 06/7/10(月) 18:36 -

引用なし
パスワード
   はじめまして。
AccessのSQLで悩んでいます。

SQLにて、n件目からmレコード取得を行いたいのですが
(Oracleでいうとrow_number)Accessでは、このような
取得の仕方はできないのでしょうか。

先頭レコードからmレコードであればtopでできるのですが
n件目という指定の仕方がいろいろ調べても見つかりません。

やはり上記の方法を実現するには、テーブル内に番号等の
フィールドを持つしかないのでしょうか。

どなたかご存知の方がいらっしゃいましたら返信宜しくお願いします。

【8195】Re:件数指定のSQLについて
回答  sim  - 06/7/10(月) 20:28 -

引用なし
パスワード
   ▼くろすけ さん:

>先頭レコードからmレコードであればtopでできるのですが
>n件目という指定の仕方がいろいろ調べても見つかりません。

若輩者ですが先ほど自分が調べたことと被りましたので。
未テストですが参考になればと思います。

  Dim strArray() As String
  Dim cnn As ADODB.Connection
  Dim rst As ADODB.Recordset
  
  Set cnn = CurrentProject.Connection
  Set rst = New ADODB.Recordset
  
  rst.Open "テーブル名", cnn, adOpenKeyset, adLockReadOnly

  rst.Move n-1

  For i = 1 To m
    rst.MoveNext
    ReDim Preserve strArray(i)
    strArray(i) = rst!項目名
  Next i

【8196】Re:件数指定のSQLについて
回答  hatena E-MAIL  - 06/7/10(月) 23:17 -

引用なし
パスワード
   >SQLにて、n件目からmレコード取得を行いたいのですが
>(Oracleでいうとrow_number)Accessでは、このような
>取得の仕方はできないのでしょうか。
>
>先頭レコードからmレコードであればtopでできるのですが
>n件目という指定の仕方がいろいろ調べても見つかりません。

たとえば、
テーブルを T1
並び順を決定するキーフィールドを ID
として、20番目から10レコード抽出する場合の
SQLは、1例を挙げると、

SELECT TOP 10 T1.*
FROM T1
WHERE
ID >
(SELECT Max(ID)
 FROM
  (SELECT TOP 20 ID
  FROM T1
  ORDER BY ID))
ORDER BY ID;

>やはり上記の方法を実現するには、テーブル内に番号等の
>フィールドを持つしかないのでしょうか。

それがあれば、もっと簡単にできますね。

【8214】Re:件数指定のSQLについて
お礼  くろすけ  - 06/7/12(水) 9:22 -

引用なし
パスワード
   simさん、hatenaさん

お忙しい中、ありがとうございました。
参考にさせて頂きます。

1217 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078226
(SS)C-BOARD v3.8 is Free