• ベストアンサー

レコードセットとデータセットの違い

こんにちは。Access VBAの本を読んでいたらデータはレコードセットで取得すると書いてあります。 ネットで.NETの記事を読んでいたらデータはデータセットで取得と書いてありました。 このレコードセット、データセットの違いは平たく言うとなんでしょうか? 私はAccess VBAが少しわかる程度のレベルです。

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

  • ベストアンサー
  • hymat
  • ベストアンサー率58% (95/162)
回答No.2

データセットは、ADO.NETで言うデータベース全体のこと、レコードセットはDAOやADOで言うDBテーブルのことですね。ADO.NET対応の新しいVBAと、従来型のDAOやADOを使うVBAは、ぜんぜん別の物ですよ。 .NETではデータベースをオープンして生成する「データセット」クラスの中に各テーブルが入っていますが、DAOやADOでは、オープンしたデータベースを使ってテーブル毎に「レコードセット」オブジェクトを生成します。

mellow91
質問者

お礼

なんと!わかりやすいご解説ありがとうございます!!データセットをデータベース全体という言葉がよく理解できました。ありがとうございます!

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 本当に平たく言うとAccess VBAのレコードセットというのはDAOまたはADODBという「Active X オブジェクト」であり、(少なくともDAOの方は)AccessというMicrosoft製の簡易データベースアプリケーションの中でAccessのMDB内に格納されているデータを操作するための機能だ。  これに対してMicrosoft .Net Frameworkのデータセットとは、ざっと表面を見ただけではレコードセットと何も変わらないように見える(実際、Accessでレコードセットを使っていた人がデータセットをレコードセットと同じ感覚で使っても何も問題ない)。  .Net FrameworkのデータセットはDataSet、DataTableなどの.Net Frameworkのクラス群であり、実際にAccessやOracleなどのDBMSから.Netアプリケーションの中でデータを取得してきた際に、データセットにデータを蓄えておく場合もあるが、データセットはそれ自体がインメモリデータベースの機能を備えている。データセット自体はOracleやMS SQL Serverなど既存のDBMSとは独立した概念や存在であり、Oracleに接続してデータをごっそりとってきてデータセットに蓄える役割を担うのはデータアダプターなどの別クラスになる。ただ、開発を専門に行うプログラマーでも無い限りここまでは知っておかなくて良い。  なので技術の土台的な話ではレコードセットはActive Xオブジェクトでデータセットは.Net Frameworkのクラスという事であり、プログラマー的にはデータセットはDB独立性や操作性などレコードセットから進化して超使いやすくなったDB操作用のプログラム部品と思えば間違いではないのではないでしょーか。

mellow91
質問者

お礼

わかりやすい解説ありがとうございました!!

関連するQ&A

  • MS-ACCESSで、レコードセットを取得したい。

    MS-ACCESS2000での質問です。 VBAのコードで、任意のテーブルから、レコードセットを取得して、ADO.Recordset変数に代入したいのですが、どのような記述をすれば、出来ますでしょうか? 最終的にはそのレコードセットの各レコードに操作をしたいのです。 よろしくお願いします。

  • レコードセット検索

    excel vbaでレコードセットの中身を検索して レコードセット内の別フィールドのデータを取得する方法がわかりません。やりたいことは、 |店舗名称|店番号|  渋谷店   01  池袋店   02  目黒店   03 というレコードセットがあって渋谷店を コンボボックスで選択したときに、店番号の"01"が 別のコンボボックスで表示されるようにしたいのですが うまくいきません。どなたか分かる方教えてください。 お願いします。

  • 【VBA】レコードセットからグラフを作成

    Excel2002とAccess2002を使っています。 (1)Accessから取得したレコードセットをデータソースにして  グラフを作成する事はできますでしょうか?  (シートにレコードセットを格納せずに) (2)上記が実現不可なら、レコードセットを配列に代入し、  その配列をデータソースにしてグラフを作成する事はできますでしょうか? レコードセットを一度シートに吐き出す事は考えていません。 (1)、(2)とも具体的なコードを書いて頂けると助かります。 よろしくお願いします。

  • DAOレコードセットから更に絞込みしたい

    VBAで質問です。あるレコードセットXをsqlで取得しました。さらにこのレコードセットにSQLを投げて絞り込みたいと思っています。例えばSQLでA,B,C列を取得しました。このA、B、C列があるレコードセットにwhereで絞り込みたいと思ってます。レコードセットXに向けて、select * from X where...というコードは投げれるのでしょうか?

  • レコードセットからレコードセットって作れますか?

    WindowsXP,VB6,SP5,で開発しています。 タイトルそのままなのですが、 ある事情で、まずはデータベース(Access)からレコードセットを作成しています。 そのレコードセットをもとに色々と抽出したいんです。 もし、データベースからSQL文で抽出するときみたいに、そのレコードセットを、 SUM(~とかGROUP化したりとかできればいいなあと思っているのですが、 その方法がわからず、2,3回遠回りしてレコードセットを作成してます。 レコードセットからレコードセットを作成することってできないのでしょうか? わかりにくくてすみませんが、どうぞよろしくお願いしますm(_ _)m

  • VB.NET データセットとADOレコードセットについて。

    最近.NETの勉強を始めました。質問なのですが (1)参考書として買った本にはデータセットが基本の構文がずらりと載っているのですが、 (2)勉強用に貰ったVBデータはADOで基盤が作ってあり、データセットは1つも出てきていません。例えばデータグリッド等は無しです。 (1)と(2)は、今後プログラムを書くにあたり、どうとらえていけばよいんでしょうか? 大きいシステムの流れはVBデータでつかめますが、細かい、(例えば、コンボボックスの値をデータから抽出したい)等の事が分からなくてネットでも見つける事ができません。データグリッドも使いたいのですが。 参考書には載っていますが、全てデータセットを使ってあります。 データセットとADOレコードセットは共に書くことは不可なのですか? テーブルごと仮で持ってくる時、こっちはデータセットでこっちは違うとかだやはり困りますよね。 実際のお仕事の現場ではどのようにされていますか? 明確なADOの使い道(こんな時はADOだ。など)も簡単に教えていただけるとありがたいです。

  • レコードセットについて

    ACCESSを勉強中のものです。 レコードセットの意味がよくわからないのですが テーブルやクエリの事を「レコードセット」と言うのでしょうか?

  • 「現在選択しているレコードが、新規のレコードなら」

    「現在選択しているレコードが、新規のレコードなら」 という情報をvbaで取得できますか? アクセス2010です。よろしくお願いします。

  • VB上でのレコードセットの扱いについて

    お世話になっています。 現在VB6+SQLSERVERで開発をしているんですが、SQLで取得したレコードセットオブジェクトの扱いについての質問です。 取得したレコードセットオブジェクトをループ文等で使う場合、一旦配列に代入して使うのと、そのままMoveNext文で使うのでは、速さでは違いはありますか?

  • レコードセットに新規追加する

    Access2013 VBAで ■テーブルa ・id ・名前 ・id2 とあり このテーブルのレコードセットを以下のように作ります。 dim Rec = dao.Recordset Set Db = CurrentDB set Rec = Db.OpenRecordset("Select * from [テーブルa] where id2 = " & 2, dbOpenDynaset) この時、このテーブルにid2=2のレコードが何もない場合、この生成したRecで、 Rec.AddNew Rec.Fields("名前").value = "名前" Rec.Update と出来ますでしょうか? よろしくお願いします。