いまSQLの実行結果をrecordsetしているのですが、
1件しかないデータをとりだすのはどうしたらよいのでしょうか?
値を取り出すさいに
例えば
1 2 3 4 5・・・EOF
と横に並んでおらず、イメージとしては
1
2
3
4
5
・・・
EOF
というようなかんじなのではないでしょうか?
ようは
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
でいうと2.3.4.5などといった横のデータを取得したいのですが。Recordset中
での取得位置がわかりません。皆さんのお力をお借りしたく思います。
皆さんのお力の前に過去ログ!
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3doc.htm#as_a
過去ログ?
初心者は、ついついExcelのシートみたいなデータ設計になってしまいがちですが、
RDBの考え方としては、横の列の繰り返しを排除するのが基本です。
検索キーワードは「正規化」。
たとえば、
http://www.kogures.com/hitoshi/webtext/db-seikika/
というのはさておき、
今回の例だと、
レコードセットを仮にrsとして、
rs(0) = 5 だったら、 その次というか、隣のデータはrs(1)で取得可能です。
>どこが さんへ
素人の方には"recordset"で
過去ログ検索をしてもらうのは少々酷でしたかね?
--
1.過去ログ"recordset"で検索
1件目"オラクルに接続するには? "をクリック
2.VB とデータベース接続、SQLはこちらがわかりやすいかも。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sak3vb.htm
の参考リンクをクリック
同じ、ページが表示されます。
--
ま、このぐらいの探し方ができないようでは、
先が思いやられますな。
>rs(0) = 5 だったら、その次というか、隣のデータはrs(1)で取得可能です。
馬鹿?>私
訂正m(__)m
rs(0) = 1 だったら、その次というか、隣のデータはrs(1)で取得可能です。
rs.Fields.Countでヨコの項目数が求めたり、Fieldsコレクションで列挙して、
1件読むごとに、ヨコの項目だけループさせて求めればいいか。
Dim Fd As Field
Dim Rs As Recordset
Set Rs = OpenRecordset(SQL)
If Not Rs.Eof Then
For Each Fd In Rs.Fields
Debug.Print Fd.Value & ""
Next
End If
Rs.Close
Set Rs = Nothing
ツイート | ![]() |