こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access にて DISTINCROW を使用した INSERT SELECT

お世話様です。

Access2003 VBAにて、DoCmd.RunSQLを使用してSQL文を流す際、
普通のINSERT-SELECT文はOKですが、
そのSELECT文にDISTINCROW句を使用していると、
数百件程度のSELECT結果しかINSERTできません。
本当は数千件のSELECT結果をINSERTしたいのですが、
これを実行した場合、エラーにもならず、1レコードもINSERTされません。

ためしに、DINSTINCTROWではなく、SQL文を変更してDISTINCTにしてみたところ、
2000件以上でもINSERTできました。
DISTINCROW句を使用して数千件でもINSERTできる方法はあるでしょうか?

ちなみにSELECT単体ですと、DISTINCTROWを使用していながら、
数千件でも結果を表示できます。

SQL例:
str_SQL = " INSERT INTO 結果テーブル(フィールド1, フィールド2, フィールド3)
 SELECT DISTINCTROW A.項目1, A.項目2, B.項目1
 FROM テーブル1 A, テーブル2 B
 (WHERE句はあってもなくても現象変わらず)
 ORDER BY A.項目4 ASC, A.項目5 ASC "

DoCmd.RunSQL (str_SQL)

よろしくお願いいたします。

投稿日時 - 2009-11-13 15:35:26

QNo.5444740

暇なときに回答ください

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

試しに

CurrentDb.Execute str_SQL

に変更してみては。

投稿日時 - 2009-11-14 14:12:23

お礼

早速のご返答、ありがとうございます。

CurrentDb.Execute を使用しても、現象変わらずでした。

ちなみに、INSERT項目数を減らしてみたところ、INSERTできていました。
DISTINCTROW句を使用した場合、何か最大INSERTバイト数のようなものが存在するのでしょうか。。。
まだ調べ切れていません。

投稿日時 - 2009-11-16 09:25:08

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問