| 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