質問: お世話になります。 エクセル、アクセスでVBAを勉強しています。 色々な調べましたが、DAO、ADOが今ひとつ ピンと来ません。 どなたか分かりやすく概要だけでもシンプルに 教えて頂けませんか。 宜しくお願い致します。
回答: まず、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を発行する(発行してレコードを取得する)機能が一番かと思うので。