• ベストアンサー

ACCESS 『DoCmd.OutputTo』について

[OSのVER]:WindowsXP or Windows2000 [AccessのVER]:Office2003 or OfficeXP or Office2000 こんにちは。 過去ログを一通り見てみましたが 該当する記事がないため質問させていただきます。 レコード件数13000件ほどの結果が返るストアドの結果をExcelに出力するために、 『DoCmd.OutputTo』を用いているのですが、Excelに出力される件数が なぜか10000件ぴったりになってしまいます。 どこかの設定で直るものなのでしょうか? 下記のようなコードで呼び出しています。 --------------------------------------------- DoCmd.OutputTo acOutputStoredProcedure, "EXEC [ストアド名] '" & パラメータ1 & "', '" & パラメータ2 & "'", acSpreadsheetTypeExcel9 --------------------------------------------- よろしくお願いいたします。

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

  • ベストアンサー
  • skikichi
  • ベストアンサー率65% (45/69)
回答No.2

outputToは一旦クリップボードに貼り付けるようですね。 単純にテーブルデータのコピペでも2万レコードまでいっぺんに貼り付けられないことがあります。 今回の場合には、全体のサイズ(項目数や容量)が大きく1万レコードが限界だったのかもしれません。 それにしてもぴったり1万とは!??? ここは確実な方法として、TransferSpreadsheet メソッドを使用されてはどうでしょうか? もしくはExcelとリンクするか。

simakusa
質問者

お礼

ご回答ありがとうございます。 たぶんですが、他のサイトでも質問を投げたところ、 『たぶん、ツール(T)→オプション(O)→詳細→クライアントサーバーの設定(既定の最大レコード数)』 という答えを頂きました。 これのとおりやってみると、実件数を出力することができました。 とはいえ、クリップボードを使用しているとなると、限界がありますね。 はじめは『TransferSpreadSheet』を使用していたんですが、ストアドの結果を出力する必要があるために、一度テーブルに落とさなければいけないので、OutputToを用いることにしたのです。『TransferSpreadSheet』を使用してストアドの結果を出力することって可能なのでしょうか??

その他の回答 (2)

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.3

TransferSpreadsheetでは一旦テーブルに落とさねばならないでしょうね。 outputToの規定の最大レコード数は97の場合デフォルトで65000だったと思いますが。 2003で設定変更できましたっけ???

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

関係していそうな情報のURLですが、レジストリを変更するので、充分検討ください。

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;882113
simakusa
質問者

お礼

ご回答ありがとうございます。 これはクライアントごとに設定する必要があるのですよね。。。?できればレジストリの変更は避けてやりたいのですが、、

関連するQ&A