MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[368]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(368番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
リストボックスなどのレコードソースにパラメータを付加する方法について

Date: Wed, 22 Nov 2000 12:58:57 +0900
From: "Akira Horikawa" <who@example.ne.jp>


堀川です

リストボックスやコンボボックスなどのレコードソースにストアド
プロシージャを連結させ、しかもパラメータを渡したい方法を
教えてくださいという質問がありましたので、お答えします。

結論から言って、できません。
なぜなら、フォームのInputParametersプロパティと同じものが
存在しないからです


しかし次のような方法で妥協することはできます。

リストボックス(コンボボックス)の
  値集合タイププロパティを、『テーブル/ビュー/ストアドプロシージャ』
に設定します。これはコントロールのデザインをするときに設定してください。


VBプログラムの中で(例えば検索範囲入力が終わった後などに)
 値集合ソースプロパティ(RowSource)の値に、SQL文をセットし
再クエリーメソッド(Requery)を実行します。
このSQL文を組み立てるときに、パラメータの値を評価してください。

ストアドプロシージャを呼び出すときは、EXECキーワードを忘れる人がいます
必ず付けてください。ここではEXECを省略することはできません。


(例)
CREATE  PROCEDURE  ItemList
    @cd int = 0
AS
    select 社員コード,氏名 from 社員 where (社員コード <= @cd)


このようなストアドプロシージャが登録されているときにリストボックスには
次のプロパティをデザイン時にセットする

リストボックス
  名前              LIST
値集合タイプ     テーブル/ビュー/ストアドプロシージャ
値集合ソース    EXEC  ItemList         (注意)必ずEXECが必要です
列数                2
列見だし          いいえ
列幅                1cm;2cm
連結列             1


プログラム実行時にボタンが押されたら次のVBAを実行させる

Private Sub  再表示_Click()
    Dim sql$
    sql$ = "exec itemlist @cd = " & Forms![検索範囲入力フォーム]![code]
    '***MsgBox sql$
    Me![LIST].RowSource = sql$
    Me![LIST].Requery
End Sub

テキストボックスcodeに、入力された値をパラメータとします


以上の方法を行えば、リストボックスに表示させる項目を自由自在に
変えることができます。


#このようなアドバイスをすると、またどこかの出版社がQ&A本の中に
#パクッってしまうんだろうな−

---------------------------------------------------
(株)日本技術ソフト開発  堀川 明

        mailto:who@example.ne.jp
        mailto:who@sub.example.jp
        http://www.horikawa.ne.jp/msde/
        http://www.kt.rim.or.jp/~pwp/

11月22日(水曜日) 12時58分記



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。