- PR -

フォームから受け取った値を、select文で使う方法

1
投稿者投稿内容
どら
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 63
投稿日時: 2006-11-17 18:50
vs2005 win xp winform
ms SQL Server 2005

いつも拝見しております。

1つご質問があります。

フォームから受け取った値を、select文の列の条件に加えることは可能でしょうか??

現状、印刷画面を作成し、そこに、条件によって、日付で抽出、登録日で抽出というように分けています。

現状は、印刷画面のなかでIF文を使い、

if me.抽出区分 = 1 then
'日付で抽出だったら
"SELECT T日報.* FROM T日報 WHERE 日付 = '2006/01/01'"
elseif me.抽出区分 = 2
"SELECT T日報.* FROM T日報 WHERE 登録日 = '2006/01/01'"
end if

印刷ボタン押下で、SQLで抽出し、レポートを表示させています。


これでも、表示されはするのですが、以前ACCESSで

"SELECT T日報.*, IIf(" & me.抽出区分.text & "= 1,日付,登録日) AS 抽出日
FROM T日報
WHERE IIf(" & me.抽出区分.text & "= 1,日付,登録日)=2006/1/1;"

で、という方法で、1つのsqlで抽出できました。

このようなことは可能でしょうか??

実際にやってみると、列名は不明ですとエラーがでてしまうので、できないのかなっと思っていまして書き込みしました。

もし、違う方法がありましたら、ご教授お願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-17 18:55
引用:

どらさんの書き込み (2006-11-17 18:50) より:

これでも、表示されはするのですが、以前ACCESSで
"SELECT T日報.*, IIf(" & me.抽出区分.text & "= 1,日付,登録日) AS 抽出日
FROM T日報
WHERE IIf(" & me.抽出区分.text & "= 1,日付,登録日)=2006/1/1;"

で、という方法で、1つのsqlで抽出できました。
このようなことは可能でしょうか??


CASE WHEN 式などをお使いください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どら
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 63
投稿日時: 2006-11-17 19:27
じゃんぬねっとさん、返答ありがとうございました。

CASE WHENを使って行うのですね。

作成したところ、動作いたしました。

自分なりに、いろいろ調べたのですが、自分の勉強不足で、お手数おかけしました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)