• ベストアンサー

DAO、ADOについて

お世話になります。 エクセル、アクセスでVBAを勉強しています。 色々な調べましたが、DAO、ADOが今ひとつ ピンと来ません。 どなたか分かりやすく概要だけでもシンプルに 教えて頂けませんか。 宜しくお願い致します。

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

まず、DAOについてですが、少々極論になりますが、過去の遺物と割り切って勉強する必要はありません。 上記は個人的見解です。 過去にDAOで作成したソフトのサポート、今までDAOを使っていたのでDAOで制作する方が効率が良い、など、個々人の事情で使用し続けることはあるでしょうが、これから勉強しようという人に対しては、勉強しなくても良いと言い切って良いと思います。 ADOはDAOが進化した、次の世代の機能と考えて良いです。(厳密には違うのでしょうが、そう考えても問題ないという意味で) ADOは、SQLを発行するインターフェイスと割り切って考えると良いと思います。 対象は、ACCESS、SQLServer、Oracle、MYSQL等、ADOに対応したデータベースサーバーであれば、何でも可能です。 例えばMDBであれば、以下のように接続します。 Private Cn As ADODB.Connection Set Cn = New ADODB.Connection Call Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=****.mdb;User ID=*****;Jet OLEDB:Database Password=******") 他のDBサーバーであれば、Openに書かれる内容が変わります。 Dim Rs As ADODB.Recordset Set Rs = Cn.Execute("SELECT * FROM [T_TEST] WHERE F_01 = 'abc' ") Call Cn.Execute("DELETE FROM [T_TEST] WHERE F_01 = 'xyz' ") あとは、上記のようにSQLをバンバン発行して、DBの内容を取得したり追加したり、書き換えたり、削除したりします。 ADOは(DAOもそうですが)、他にも様々な便利機能がありますが、まず最初に覚える基本的な使い方としてSQLを発行する(発行してレコードを取得する)機能が一番かと思うので。

miruchoko
質問者

お礼

分かり易いご回答ありがとうございます。 大変参考になりました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>ピント来ない、箇所だけでも書かないと、答えようがない。もっと勉強して質問の焦点を絞れるようになってから質問すべきだ。学習の初めは誰でもこの状態です。それまでは本・WEBを読む、周りに聞く、スクールで学ぶなどをするものだろう。 「ADO」という語句ででも、「Google」照会でもして読みましたか。 このコーナーで答えが出ても、WEBの{ADO」の記事に量的にも、質的にも及ばないだろうから、そちらを見るほうがよい。 http://www.accessclub.jp/ado/01.html ほか膨大な記事が有るようだ。 ーー 1つだけ小生から、レコード処理というもののメリットを考えることを言いたい。 昔はバッチ処理が主流で、文系ビジネスでは、これ1本だったが、エクセルのようなソフトがでて、初心者には影が薄くなった(基礎性・重要性が意識されにくくなった)と思う。 (1)アクセスではSQLなどで抜き出しや集計などしますが、レコード間(テーブルで言えば行相互)の関連するものの課題はSQLは苦手です(*1)。 ですから1レコードごとに捉えたほうが便利な処理はADOなどで やると良い。 前記*1の反省からか、SQLで対象レコードを絞り、結果の1レコードごとに何かをするというケースも結構有る(そのため近時のSQLなどでは、「カーソル処理」なども取り入れられて、使えるSQL処理系(Oracle等)も有るが) 参考 http://www.sqlpassj.org/dbe/kaihatsu/07.aspx (2)レコードごと、フィールドごとに、キメ細やかな処理をする場合はADOでレコードを捉える処理は便利です。 ーー しかし注意点 (1)ただしSQLも高度の使い方を知れば、複雑になっても、ほとんどのことができるかもしれない。主流はSQLと考えたほうが良いのかも。 (2)またADOからSQL文を実行できる仕組みもACCESSなどには有るので、思考・理解の上で区分するだけで、両方使うことが多いですが

miruchoko
質問者

お礼

ありがとうございます。 いつも大変勉強になります。

  • id357
  • ベストアンサー率29% (39/133)
回答No.2

DAO は データ アクセス オブジェクト (Data Access Object) デーダーベースを操作するためのソフトフェア、と 考えてもらえればよいかと思います。 ADO は 一般的には アクティブX データ オブジェクト です。 (ActiveX Data Object) ですが、実際は (ActiveX Data Access Object) ADAO なんですが、 これだと判りにくいので ADO (2番目のAは概念的に必要ないってな訳で) と表現されています。 ただ、これはメーカー側で勝手に名前を付けているだけですので、 アドバンスド データ オブジェクト でも、よろしいかと。 (Advaced Data Object) 要するに、DAOはデーターベースを操作するために作成されたノウハウです。 ADOは、それを、より、進化させたものです。 との、とらえかたで、よろしいのではないでしょうか。

miruchoko
質問者

お礼

明快なご回答を頂きありがとうございます。 参考になりました。

関連するQ&A

専門家に質問してみよう