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

【Access】ADP 2003 条件にnullがある場合のストアド検索条件式作成

前にSQLServerのストアドSQLを動的に組み立てる方法の紹介を
したのですが、
・【SQLServer】SQLServer2005 SQLを動的に組み立てて実行する。

Microsoftのナレッジベースにも同じようなものがありましたのでご紹介。
Access プロジェクトで Query by Form (QBF) を実装する方法

Create Procedure "QBFProc"
@CustomerID varchar(10), @EmployeeID int, @OrderDate datetime
As
Declare @SQLSTRING varchar(1000)
Declare @SelectList varchar(1000)

SET NOCOUNT ON

SELECT @SelectList = 'SELECT * FROM 受注'

--得意先コードの検索条件が NULL かどうかを確認します。

--ここに値が含まれている場合、WHERE 句を作成します。

IF @CustomerID Is NOT NULL
BEGIN
SELECT @SQLString = 'WHERE 得意先コード = ''' + @CustomerID + ''''
END

--社員コードの検索条件が NULL かどうかを確認します。

--ここに値が含まれている場合、WHERE 句に情報を追加します。

IF @EmployeeID Is NOT NULL
BEGIN
IF @SQLSTRING Is NOT NULL
BEGIN
SELECT @SQLSTRING = @SQLSTRING + ' AND 社員コード = ' + Convert(varchar(100), @EmployeeID)
END
ELSE
BEGIN
SELECT @SQLSTRING = 'WHERE 社員コード = ' + Convert(varchar(100), @EmployeeID)
END
END

--受注日の検索条件が NULL かどうかを確認します。

--ここに値が含まれている場合、WHERE 句に情報を追加します。

IF @OrderDate Is NOT NULL
BEGIN
IF @SQLSTRING Is NOT NULL
BEGIN
SELECT @SQLSTRING = @SQLSTRING + ' AND 受注日 = ''' + Convert(varchar(20), @OrderDate) + ''''
END
ELSE
BEGIN
SELECT @SQLSTRING = 'WHERE 受注日 = ''' + Convert(varchar(20), @OrderDate) + ''''
END
END

--3 つのパラメータがすべて NULL の場合以外は SELECT 句と WHERE 句を

--結合し、3 つのパラメータがすべて NULL の場合は無条件で
--@SelectList を返します。

IF @CustomerID IS NULL AND @EmployeeID IS NULL AND @OrderDate IS NULL
BEGIN
SELECT @SelectList = @SelectList
END
ELSE
BEGIN
SELECT @SelectList = @SelectList + ' ' + @SQLSTRING
END

--SQL ステートメントを実行します。

EXECUTE(@SELECTLIST)


ストアド側での実装でした。
VBA側で組み立ててから投げるよりパフォーマンスがあがるかと思います。
[Google PR]

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

<< 【Access】WinHttpRequestOption_EnableRedirectsオプションでリダイレクト前のヘッダーを取得する。
【CakePHP】XAMPPでバーチャルホストを設定すると複数のWEBサイトを管理できるよねー。 >>

[関連エントリ 最新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)