プロが教えるわが家の防犯対策術!

Access2000(Windows)でBtrieveデータベースからODBCをつかって、

DoCmd.TransferDatabase acImport, "ODBC", "ODBC;DSN=Btrieve", acTable,
"BtrieveTable名", "AccessTable名", False

で、インポートすると1つのテーブルだけでレコード数が135,000程度、ファイルサイズが30MB程度(最適化直後)になってしまいます。時間も(マシンやネットワークの環境によりますが)10分近くかかってしまいます。
実際このテーブルの中で必要なレコード数は500程度なので、まるまるインポートし
ないで必要なだけにして、時間とファイルサイズを稼ぎたいのですが、何か方法があるのでしょうか?

いったんリンクしてから SELECT INTO や INSERT INTO すれば10秒もかからないでできます。
しかし、BtrieveTable名が毎月変わっていくので、お手上げ状態になり、上の方法を思いついたのです。
もしもこんな条件でリンクの設定ができればベストなのですが、ODBCソフトがメラント社のDatadirectというものでVBAからの設定が可能なのかどうかもわかりません。

よろしくご教授願います。

A 回答 (2件)

下の回答を書いた者です。


下記の通り、「メラント社のDatadirect」については
分からないんですが、、、

ホームページやドキュメント類はご覧になりましたでしょうか?
ホームページでは手動でリンクを張る方法を説明していましたが
「データの更新を行う時には」メッセージが出るようです。
(リンクテーブルを削除してみても無理ですかね?)

出さなくする方法もあるような気がするんですが、知識も
検証環境も無いですし、これ以上の技術的コメントは
私からは、、、中途半端ですみません。

参考URL:http://www.merant.co.jp/datadirect/technote/odbc …
    • good
    • 0

DoCmd.TransferDatabase acImport,,,(省略)


の「acImport」を「acLink」にしてリンクをはり、その後で
SELECTやINSERTをすれば良いのでは?

「メラント社のDatadirect」については分かりません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
早速試してみました。
ご指導いただいた方法では、LINKが作成される前にDataDirectの"固有レコード識別子の選択"ボックスが表示されて、一旦停止してしまいます。
ここでOKをクリックすればLINKが作成されるのですが、それはそれで仕方がないのでしょうか?

お礼日時:2002/02/15 14:43

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

関連するカテゴリからQ&Aを探す