【保存版】2013年度発売全パチスロアプリ一覧(iPhone,iPad)

【Access】2003 ADPでストアドを簡単にEXCEL出力する(OutputToメソッド使用。注意点あり)。

ACCESSには標準でデータベースのデータを外部出力するという機能(TransferSpreadsheet)
があります。

EXCELに出力して資料に加工する等、
ACCESSから外部へデータを出力する際に利用している方も多いと思います。

ただ、出力元データが、テーブルorクエリの場合は、
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, テーブル名orクエリ名, 出力先パス
でよいのですが、

出力元が、ストアドの場合は使えません。

では、クエリがないACCESS ADPでの出力の場合どうするのかというと、
OutputTo メソッドを使います。
こんな感じ。
DoCmd.OutputTo acOutputStoredProcedure, ストアド, acFormatXLS, 出力先パス

ポイントは、ストアドを指定する際、ストアド名の前に"EXEX"を指定する必要があることです。
また、パラメーターが存在する場合、パラメーターはストアド名の後ろに記述します。

例)
ストアド「prTEST」を、ID=1のパラメーターをつけて出力する場合、
EXEC prTEST @ID=1
のような形式になります。

OutputTo に組み込むとこんな感じですね。
DoCmd.OutputTo acOutputStoredProcedure, "EXEC prTEST @ID=1", acFormatXLS, 出力先パス

これで完成ばんざーいい。と思ったのですが、1点注意点。
「2046:コマンドまたはアクション'出力'は無効です。」
2046:コマンドまたはアクション出力は無効ですエラー画面

というエラーがでる場合があります。
最初、なぜだかわからなかったのですが、原因がわかりました。
OutputTo メソッドは、データベースウインドウが表示されていない場合、
使えない仕様なのです。

しかし、ユーザーに使ってもらう場合、データベースウインドウを非表示にしておきたい
ケースも多いと思います。

苦肉の策として、
出力前にデータベースウインドウを表示し、出力後、非表示に戻すということを行います。

最終的には、以下のような感じになります。↓

Application.Echo False ’画面描画を停止
DoCmd.SelectObject ObjectType:=acStoredProcedure, InDataBaseWindow:=True'データベースウインドウ表示
DoCmd.OutputTo acOutputStoredProcedure, "EXEC prTEST @ID=1", acFormatXLS, 出力先パス
DoCmd.RunCommand acCmdWindowHide 'データベースウインドウ非表示
Application.Echo True  ’画面描画を再開

*あと、エラー処理で、Application.Echo Trueを書かないと、
エラー時、画面が固まったみたいに見えるので注意!!


これで、なんとかなりますが、
もっとスマートなやり方はないですかねー。
[Google PR]

Twitterはじめました。プラプラ | Twitter

<< 【SQLServer】データベースメールの構成 SQL Server 2005でいってみよう 運用管理編
【セキュリティー】マイクロソフトの無料ウイルス対策ソフト「Security Essentials」 >>

[関連エントリ 最新5]

[Google PR]


[最新エントリ 5]

>>トップページ
人気カテゴリ:AccessTips SQLServer CakePHP iPad
過去ログ(全記事一覧)

コメント
コメントする(お気軽にどうぞ)









この記事のトラックバックURL
トラックバック
カテゴリー
プロフィール
お問い合わせ
Powered by NINJA TOOLS
links
recent comment
  • 【Access】vbaでhmacが正しく計算できた!!
    まさ (06/01)
  • 【Access】AccessReportMailメール送信時のポートを25から587へ
    わら (05/31)
  • 【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。
    sazi (09/08)
  • 【あまっちゃお】Amazon商品検索「あまっちゃお」プロジェクト始動。Ver00-06-00 β
    カメちゃん (07/31)
  • 【Access】あれ?DoCmd.RunCommand acCmdSaveRecordの内部仕様が変わった?
    花姉 (03/17)
  • 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
    亀 (02/06)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    管理人 (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    あ (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    K (11/13)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    管理人 (08/04)
recent trackback
  • 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
    awgs Foundry (10/29)
  • 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
    XMLがキライ。 (04/09)
  • Vistaから、LinkStation(NAS)にアクセスできません。
    そのほかいろいろ (09/06)