• ベストアンサー
  • 困ってます

DAO、ADOについて

  • 質問No.4528063
  • 閲覧数4289
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 59% (191/323)

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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 54% (327/598)

まず、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

お礼率 59% (191/323)

分かり易いご回答ありがとうございます。
大変参考になりました。
投稿日時:2008/12/07 23:21

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 28% (4498/16048)

>ピント来ない、箇所だけでも書かないと、答えようがない。もっと勉強して質問の焦点を絞れるようになってから質問すべきだ。学習の初めは誰でもこの状態です。それまでは本・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

お礼率 59% (191/323)

ありがとうございます。
いつも大変勉強になります。
投稿日時:2008/12/07 23:24
  • 回答No.2

ベストアンサー率 29% (39/133)

DAO は
データ アクセス オブジェクト
(Data Access Object)

デーダーベースを操作するためのソフトフェア、と
考えてもらえればよいかと思います。

ADO は
一般的には
アクティブX データ オブジェクト です。
(ActiveX Data Object)
ですが、実際は

(ActiveX Data Access Object)
ADAO なんですが、
これだと判りにくいので ADO
(2番目のAは概念的に必要ないってな訳で)
と表現されています。

ただ、これはメーカー側で勝手に名前を付けているだけですので、
アドバンスド データ オブジェクト でも、よろしいかと。
(Advaced Data Object)

要するに、DAOはデーターベースを操作するために作成されたノウハウです。
ADOは、それを、より、進化させたものです。
との、とらえかたで、よろしいのではないでしょうか。
お礼コメント
miruchoko

お礼率 59% (191/323)

明快なご回答を頂きありがとうございます。
参考になりました。
投稿日時:2008/12/07 23:23
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ