MSDE FunClub 現在までのアクセスカウント数 最終更新日 : 2000/11/23
Microsoft Data Engine FunClub
Since 2000.11.23
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻)
【第23章484p 〜 486p掲載】

【例題7番】
パラメータ付きストアドプロシージャをレコードソースとした
動的連結フォームの作成


レコードソースに対応するパラメータ付きストアドプロシージャ

    CREATE PROCEDURE PROC_医師2
             @no   int = 0
    AS
        SELECT * FROM 医師
            WHERE( 医師ID = @no )


検索連結ボタンを押したら、該当する医師を検索する
検索結果のレコードセットに対して連結する

検索連結ボタンを押してください

検索連結ボタンのVBAプログラム

'
'**********************************************
'                 検索連結/非連結
'  レコード検索を行うストアドプロシージャをレコード
'  ソースとする
'**********************************************
'
Private Sub Search_Click()
    Dim no
    
    '非連結状態ですか?
    If Me.Recordset Is Nothing Then
       
       '検索条件
       If IsNull(Me![医師ID]) Then
          '検索パラメータがないので10番とします
          no = 10
       Else
          '検索パラメータの取得
          no = Me![医師ID]
       End If
       
       'ストアドプロシージャのパラメータの定義
       'フォームの入力パラメータのプロパティ設定
       Me.InputParameters = "@no int = " & no
       
       'レコードソースをストアドプロシージャに設定します
       Me.RecordSource = "PROC_医師2"
    
       'テキストボックスの連結先フィールド名の設定
       'テキストボックスの名前が列名に一致している
       Me![医師ID].ControlSource = "医師ID"
       Me![医師名].ControlSource = "医師名"
       Me![医師TEL].ControlSource = "医師TEL"
    
       'クエリーの実行
       Me.Requery
       
       'レコードが見つかりましたか?
       If Me.Recordset.RecordCount = 0 Then
          MsgBox "検索に該当するレコードはありませんでした", , "検索失敗"
          '連結解除
          Me![医師ID].ControlSource = ""
          Me![医師名].ControlSource = ""
          Me![医師TEL].ControlSource = ""
          Me.RecordSource = ""
       End If
   Else
   '連結を解除する
       Me![医師ID].ControlSource = ""
       Me![医師名].ControlSource = ""
       Me![医師TEL].ControlSource = ""
       Me.RecordSource = ""
   End If

End Sub




技術評論社の書籍ガイドへ
下巻:ISBN4-7741-0966-5

ウィンドウを閉じる


(株)日本技術ソフト開発 責任編集:堀川 明
MSDE FunClubに関するご意見・ご要望等ございましたら、 msdefun@horikawa.ne.jp までご連絡下さい。
HOME: http://www.horikawa.ne.jp/msde/


MSDE FunClubの運営は、マイクロソフト社とは一切の関係はありません