• ベストアンサー

Accessのデータ操作について(AccessVBA)

AccessVBA初心者です。 Accessのデータを操作する方法について質問です。 例えば形式、フィールドが同じ複数のテーブルを一つのテーブルにまとめるようなとき、 Insert into~構文を使っていく方法でするとします。 (1) Dim connAccess As ADODB.Connection Set connAccess = Application.CurrentProject.Connection のような接続方法でSQL文を実行する (2) CurrentDb.Execute SQL文 上記の2つのパターン、どちらでも出来ますよね? (1)の方は全然理解できません。 あの2行だけでは接続すらで来ていないかもしれません… (2)の方が単純で接続なんかも意識せずに出来ますよね。 この2つの方法はどう違うのでしょうか。 こうゆうデータベースの操作について書かれているサイトがあれば、 そちらも教えてほしいです。 よろしくお願いいたします。

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

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

素人の憶測ですが、ほぼ同じことだと思います。 ただし(1)のほうが汎用性は高いと思います。 最近のアクセスの状態を詳しく知りませんが、一昔前までの アクセスは、挙動が不安定になることも多くフロント部分と データ部分を分けて使うことも多くありました。 そのような際に connAccess1.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dbName & ";" のように変更することで、簡単にdbの切替ができました。 また、データベースを変更した際に(データが増えてくるとどうしても アクセスでは限界を感じることがあります。)コネクションの内容を 変えるだけで、既存のアクセスをフロントエンドとして使える可能性も あります。(dbによってはSQL文も変更する必要がありますが) また、複数のコネクションを使って、非同期でsqlをかけたいときとかにも使えます。 やっていることは、同じですが(1)の方が他にいろいろ変更しやすい、 のではないかと思います。 実際に調べたわけではないので(根拠はないので) 間違っていたら申し訳ありません。 どなたかご指摘ください。 

rufas
質問者

お礼

ありがとうございます。 同じだけど、汎用性が違うと言われると納得です。

その他の回答 (1)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

DAOとADOの特徴を理解し、使い分けてください。 下記のサイトなどが参考になると思います。 http://homepage2.nifty.com/inform/vbdb/daoado.htm http://www.naboki.net/access/heaven/heaven_14.html http://www.tsware.jp/labo/labo_23.htm 簡単に言えば、DAOはAccess用に作られたもので、mdbを扱う場合にはADOより優れています。 データベースを分ける話も出ていますが、Access2000以降は結構安定していますので、スタンドアロンで使う小規模なデータベースなら、分ける必要は無いと思います。 DAOは古い技術で、ADOへの移行が勧められていますが、Accessのmdbを扱う場合に限っては、パフォーマンスを優先して、DAOを使うケースも多いと思います。 勉強が目的で現在Accessを使っているが、将来的には何を使うか決まっていない、等の場合は、ADOの方が良いかも。 >こうゆうデータベースの操作について書かれているサイトがあれば、 >そちらも教えてほしいです。 下記を見ればDAOとADOの具体的な使い方が比較出来ます。 http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado.aspx

rufas
質問者

お礼

ありがとうございます。 暗黙でこちらが使われているとゆうそうゆうのがわかるだけでも スッキリしました。 教えていただいたサイトも見て、 勉強したいと思います。

関連するQ&A