MSDE FunClub | 最終更新日 : 2000/11/24 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) | ||
【第23章494p 〜 496p掲載】 |
' '************************************************************ ' 【検索の実行】 ' レコード検索を行うストアドプロシージャをレコードセットとする '************************************************************ ' Private Sub Search_Click() Dim r$, s$, e$ '検索対象の患者ID番号の取得 s$ = "1" e$ = "999" If Not IsNull(Me![St]) Then s$ = Me![St] If Not IsNull(Me![Ed]) Then e$ = Me![Ed] '今までのレコードセットの連結を解除する Discon Me 'ADOの接続 '現在のAccessプロジェクトの接続を取得する Dim cn As ADODB.Connection Set cn = CurrentProject.Connection 'ADOレコードセットを作成する Dim rs As New ADODB.Recordset 'レコードセットのプロパティを設定する rs.CursorLocation = adUseServer rs.CursorType = adOpenStatic rs.LockType = adLockOptimistic 'レコードソースの定義 'パラメータ付きストアドプロシージャの実行です r$ = "EXEC PROC_医師患者2 @st=" & s$ & " , " & _ "@ed=" & e$ rs.Open r$, cn, , , adCmdText MsgBox r$, , "レコードソースの定義式" 'フォームのレコードセットに代入する Set Me.Recordset = rs '再同期コマンドの定義 Me.ResyncCommand = "Resync_医師患者 @no = ?" '固有のテーブルの定義 Me.UniqueTable = "患者" 'テキストボックスの連結先フィールド名の設定 'テキストボックスの名前が列名に一致している Me![患者番号].ControlSource = "患者番号" Me![患者姓].ControlSource = "患者姓" Me![患者名].ControlSource = "患者名" Me![医師番号].ControlSource = "医師番号" Me![医師氏名].ControlSource = "医師氏名" Me![医師電話].ControlSource = "医師電話" '念のためクエリーの実行 Me.Requery '検索が失敗したときは連結を解除する If (Me.Recordset.RecordCount = 0) Then MsgBox "レコードの検索に失敗しました", , "失敗です" Discon Me End If End Sub ' '********************************** ' フォームのレコードセットを解除 '********************************** ' Sub Discon(fm As Form) If Not (fm.Recordset Is Nothing) Then fm![患者番号].ControlSource = "" fm![患者姓].ControlSource = "" fm![患者名].ControlSource = "" fm![医師番号].ControlSource = "" fm![医師氏名].ControlSource = "" fm![医師電話].ControlSource = "" fm.RecordSource = "" End If End Sub