- ベストアンサー
選択したフィールドだけのCSVを出力
ACCESS2003とSQLserver2008を使っています。 エンドユーザが画面でフィールド名を選択して、必要なフィールドだけ のCSV(エクセル)を出力したいのですが、そんなツールはないでしょうか? 作り込むとしたら、ストアドでSELECT文のフィールド名やテーブル名に 変数を使うことは可能でしょうか? (試したらフィールド名自体が件数分表示されました、テーブルは エラーになりました) また、どこかにサンプルなどはないでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
http://www.sint.co.jp/products/siob/ob/re/requirements.html#requirements02 SQL Serverでの実績はありませんが、Oracleと接続しての実績です。 あるテーブルのデータを表示する際、任意フィールドを絞りこみ表示させることができます。さらにその結果をExcelに直接出力すること もできます。
その他の回答 (3)
- nora1962
- ベストアンサー率60% (431/717)
sqlserverの接続例です。 http://www37.atwiki.jp/kuronekosoft/pages/14.html デモです。 http://kuronekosoft.nobody.jp/tutorial/s_tutorial01.html 黒猫 Studio はSELECT文を作る必要がありますから、ちょっと敷居が 高いですかね。
お礼
ありがとうございました、デモを見たのですが エンドユーザには無理と判断し没としますが、 開発担当者用で検討してみます。
- nora1962
- ベストアンサー率60% (431/717)
ツールならフリーの http://www.vector.co.jp/soft/winnt/business/se427666.html とか、有償でodbc経由になりますが http://www.est.co.jp/skylink/ とか
お礼
ありがとうございます、フリーの黒猫をDLしたのですが接続できませんでした。 事前に何らかの作業が必要なんでしょうか? (OLE DB プロバイダとかODBCとかありますがスキル不足で???状態です)
- jamshid6
- ベストアンサー率88% (591/669)
ストアドのサンプルを示しておきましょうか。動的クエリを使います。 CREATE PROCEDURE ap_DataExtractor (@TABLE nvarchar(128),@FIELDLIST nvarchar(max)) AS BEGIN SET NOCOUNT ON EXEC ('SELECT '+@FIELDLIST+' FROM '+@TABLE) END EXEC ap_DataExtractor 'TABLE1','Field2,Field5,Field7' でも、これだと正しくないテーブル、フィールドを指定するとエラーになります。 また、いわゆる不正なパラメータを渡されるといろいろできてしまうので、 通常は渡されたパラメータを検証します(詳しくは説明しません) CREATE PROCEDURE ap_DataExtractor (@TABLE nvarchar(128),@FIELDLIST nvarchar(max)) AS BEGIN SET NOCOUNT ON --有効なテーブルか IF (object_id(@TABLE) IS NULL) RETURN 99 --有効なフィールドか DECLARE @FIELDXML xml = CONVERT(xml,'<F>'+REPLACE(@FIELDLIST,',','</F><F>')+'</F>') DECLARE @NEWFIELDLIST nvarchar(max) SELECT @NEWFIELDLIST=ISNULL(@NEWFIELDLIST+',','')+c.name FROM sys.columns c INNER JOIN (SELECT x.COL.value('./text()[1]','nvarchar(128)') FIELD FROM @FIELDXML.nodes('/F') as x(COL)) f ON f.FIELD=c.name WHERE object_id=object_id(@TABLE) IF (@NEWFIELDLIST IS NULL) RETURN 99 --クエリ実行 EXEC ('SELECT '+@NEWFIELDLIST+' FROM '+@TABLE) END GO 本当ならば、このストアドをbcpユーティリティで実行するとそのままCSVが出来上がって一番楽なのですが、 リンクページの理由によりお勧めできません。 別の方法でCSV化してください。 http://support.microsoft.com/kb/952734/ja (2008でも直っていません)
お礼
サンプルありがとうございます、解析して勉強してみます。
お礼
ありがとうございます、お値打ちなツールなので、試用版で試してみます。
補足
トライアルで試してみました。 確かにフィールドを絞りこんだり、レコードの絞り込みも希望通りの機能でした。 ただ、一度設定した絞り込みの内容を名前をつけて保存できたり、 テーブルごとに覚えておいて、次回のデフォルトとして表示される 機能が欲しいのですが、付いているのでしょうか? 多機能で効率がいいツールですので開発用に導入を検討してみますが、 エンドユーザ用にこの機能だけに特化した様な(安価で)シンプルな ツールはないでしょうか?