• ベストアンサー

ODBCとJET

上記の件なのですが、現在EXCELからACCESSにアクセスして データを取って来る、というようなVBAマクロを組んでいます。 最近、耳にした話なんですが、単純にデータを取って来る だけなら、現在の方法のJET経由より、ODBCに登録して取って来た 方が速いということを聞きました。 自分の持っている本には、ODBCを使用するのは、一世代前の方法 だと書いてあるのですが、実際のところがよく分かりません。 一般的に、どちらの方法が広く採用されているのかということと 速度が速いのかということを教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

> 現在の方法のJET経由より、 > ODBCに登録して取って来た方が速いということを聞きました。  私はそんな話を一度も聞いた事ないし、私の持てる全ての知識を総動員させて考えてもその意見に賛同する事はできない。 現状:Excel→ADO→OLEDB JET Provider→Access ODBC:Excel→ADO→OLEDB ODBC Provider→ODBC→ODBC JET Driver→Access もう一段かませる事でより遅くなるのは明白だ。 理由 1.現状のOLEDB Jet Providerの方が、ODBC Jet Driverより性能が良い 2.ODBCのロード時間が追加される > 一般的に、どちらの方法が広く採用されているのかと  ExcelからAccessというかMDBへの接続で、ODBCが採用されている例は無いでしょ、さすがに。OLEDBがあんのになぜODBCを使うのか。こだま・ひびき風に言うと「そぉんな奴おれへんやろぉ」という事です。

iwaiwaiwa
質問者

お礼

ご回答ありがとうございました。 自分も正直に言って、ODBCの方が速いというのは疑問に 思っていたので、すっきりしました。 ありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 それは、たぶん、誤解でしょうね。 >現在の方法のJET経由より、ODBCに登録して取って来た方が速いということを聞きました。 スピードの「速い・遅い」ではなくて、手続きの「早い・遅い」です。 >ODBCを使用するのは、一世代前の方法だと書いてある それは方法じゃなくて、一世代前の造りなんですね。(一世代じゃきかないかもしれません)それで、ODBC アドインや、外部データの取り込みから、MS-QUERY を使う場合、ODBC 経由になるわけで、ODBC は、ユーザーの目には入っているのですが、一環した作業になっていて、オートメーション・オブジェクトで、VBAやマクロを知らない人には、とっても便利なんですね。 Excelユーザーなんかには、目からうろこという感じですが、実際の利用になると、どの程度なんだろうっていう気がしてくるシロモノなのです。 たぶん、高度な使い方は、その先にあるのだろうっていう期待はさせられるのですが、だいたい、その手の資料がほとんどないわけで、やっぱり需要としては、低いのでしょうね。 最低でも、1シートの列を丸ごと2列使われるのが、かなり痛いです。パラメータこそは入れられるのですが、ほとんど、応用が利きません。 とは言え、Excelを教える立場から、それは知らないとは言えないわけなんです。 VB/VBAが分れば、ADO とかDAO のほうが、あとくされがないので、やっぱり、こちらを使ってしまいます。そういう類のだと思います。なお、スピード感としては、ADOでも、ODBC経由のQueryでも、そんなに速度の損失はないようです。 (あとくされがない:Queryを使うと、QueryTable を残されるので、その場所が使えない、ということ。) 最後に、「私は、Excelで、ODBCをこんなに使えるんだ」と、自信もって言える人が現れたら、それはそれで、興味が湧くのですが。(^^;

iwaiwaiwa
質問者

お礼

ご回答ありがとうございました。 ネット等で調べてもODBCを使用してACCESSのデータを拾ってくる、 といった情報は殆どないですよね。 皆さんにご回答を頂いて、すっきりしました。 ありがとうございました。

関連するQ&A