アプリ版:「スタンプのみでお礼する」機能のリリースについて

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つの方法はどう違うのでしょうか。

こうゆうデータベースの操作について書かれているサイトがあれば、
そちらも教えてほしいです。
よろしくお願いいたします。

A 回答 (2件)

素人の憶測ですが、ほぼ同じことだと思います。


ただし(1)のほうが汎用性は高いと思います。
最近のアクセスの状態を詳しく知りませんが、一昔前までの
アクセスは、挙動が不安定になることも多くフロント部分と
データ部分を分けて使うことも多くありました。 そのような際に
connAccess1.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dbName & ";"
のように変更することで、簡単にdbの切替ができました。

また、データベースを変更した際に(データが増えてくるとどうしても
アクセスでは限界を感じることがあります。)コネクションの内容を
変えるだけで、既存のアクセスをフロントエンドとして使える可能性も
あります。(dbによってはSQL文も変更する必要がありますが)
また、複数のコネクションを使って、非同期でsqlをかけたいときとかにも使えます。

やっていることは、同じですが(1)の方が他にいろいろ変更しやすい、
のではないかと思います。 実際に調べたわけではないので(根拠はないので)
間違っていたら申し訳ありません。 どなたかご指摘ください。 
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/12 10:41

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 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/12 10:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!