2016-05-20 10 views
0

私はSQL Serverから引き出しているデータからExcelを抽出しています。私は小さな問題を見つけたので、あなたに進める方法を尋ねたいと思います。基本的には、ClientNameと5つの回答を含むレポートを実行しています。VB6とExcelのSQLレポート

Name....Q1....Q2....Q3....Q4 
JOHN  1  2  2  2 

事があり、私はエキスの値1-5を表示する必要がありますが、保存された値は1801です - 私は、抽出のためのデータを操作する必要がありますどのように1805。私はちょうど私のSELECTステートメント内のケースステートメントを行う必要がありますか...

Select FirstName, LastName, case when Q1 = 1801 then '1', when Q1 = 1802 then '2'.... 

すべての質問のためにそれをする必要がありますか?

このレポートはVB6アプリケーションで書かれていますので、私はこのデータをプルし、各レコードセットをループして、すべてをExcelに書き出します。

+1

実際の選択自体ではなく、表示するためにレコードセット値をループする際に、case selectを含めるだけです。例えば ​​'not rs.EOF:strAnswer1 = rs.item(2):select case strAnswer1' – Tim

+2

@ FatBoySlim7結果から1800を引いてもらえますか? –

+0

いいえこのケースでは、値の1つが0として保存され、1806なので見えないので、この場合は動作しません。私はselect文でそれをやっていますが、それはちょっとですが、私はそれを操作する必要がないので、私はそれを書くように簡単に感じます - ちょうどループでExcelにダンプするだけです – FatBoySlim7

答えて

1

レコードセットをループして表示する場合は、SQLでケース選択を行う必要はなく、デバッグするのが難しくなります。あなたはVBであなたのロジックをよくする。

ただし、Excelの.copyfromrecordset関数を使用して、レコードセット全体をシートにダンプできます。これを行う場合は、レコードセットを操作するのがより複雑なので、SQLでケース選択を含める必要があります。