こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS VBA レコードセットの参照方法について

ACCESS2000でシステムを作っています。
ADOを使って、SELECT句に"*" を使用した内部結合でデータを
抽出したときの結果の参照方法がわかりません。

SQL="SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id"
rsはレコードセット,ACはアクティブコネクションとして

rs.Open SQL, AC, adOpenKeyset, adLockOptimistic
にて結果を取得し、変数aにtable1のフィールド名の値を代入
しようとしています。

a = rs!table1.フィールド名

では「コンパイルエラー メソッドまたはデータメンバが
見つかりません」となり、値の参照ができません。

"*" でなく、フィールド名を明示して それぞれのフィールドに
"as 別名"をつければ
参照できますが、フィールドが多いので "*"を使用したいのです。

大変初歩的な質問かと思いますが、どうかよろしくお願いします。m(_ _)m

投稿日時 - 2008-06-02 15:11:31

QNo.4069524

困ってます

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

Dim rs as RecordSet
Set rs = ほげほげ
ってやってるなら
a = rs.fields(1)

a = rs.fields("table1.フィールド名")
で行ける筈だが?

投稿日時 - 2008-06-02 15:28:28

お礼

をををグレート!まさにこれです。m(_ _)m
これで解決しました。大変ありがとうございました。

投稿日時 - 2008-06-02 16:35:08

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

値 = rs.Fields(0).Value
名 = rs.Fields(0).Name

上記のようにインデックスではダメですか? 

投稿日時 - 2008-06-02 15:25:25

お礼

回答ありがとうございました。インデックスでも回せるわけですね。
大変参考になりました。m(_ _)m

投稿日時 - 2008-06-02 16:36:45

ANo.1

SELECT table1.*, table2.*
FROM table LEFT JOIN table2 ON table1.id = table2.id

のような感じでどうでしょう。

投稿日時 - 2008-06-02 15:20:09

お礼

回答ありがとうございました。
この方法も試してみましたが、同じくレコードセットの参照時にエラーとなりました。

レコードセットの参照方法については当サイトにて無事解決いたしました。m(_ _)m

投稿日時 - 2008-06-02 16:41:15

あなたにオススメの質問