• ベストアンサー

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

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

Dim rs as RecordSet Set rs = ほげほげ ってやってるなら a = rs.fields(1) や a = rs.fields("table1.フィールド名") で行ける筈だが?

sogorin
質問者

お礼

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

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

値 = rs.Fields(0).Value 名 = rs.Fields(0).Name 上記のようにインデックスではダメですか? 

sogorin
質問者

お礼

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

noname#60992
noname#60992
回答No.1

SELECT table1.*, table2.* FROM table LEFT JOIN table2 ON table1.id = table2.id のような感じでどうでしょう。

sogorin
質問者

お礼

回答ありがとうございました。 この方法も試してみましたが、同じくレコードセットの参照時にエラーとなりました。 レコードセットの参照方法については当サイトにて無事解決いたしました。m(_ _)m

関連するQ&A