| MSDE FunClub |
|
最終更新日 : 2000/11/24 |
|
Microsoft Data Engine FunClub
|
Since 2000.11.24
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) |
|
【第23章491p 〜 492p掲載】 |
【例題10番】
ADOプログラムによる
動的連結フォームの作成
単一のテーブルに連結
医師IDを入力し、『連結/非連結』ボタンを押します
検索により取得したレコードセットに対して連結を行う

連結/非連結ボタンが押されたら実行するVBAプログラム
'
'**************************
'【例題02プログラムの移植】
' 連結/非連結
'**************************
'
Private Sub Connect_Click()
'ADOの接続
Dim cn As ADODB.Connection
'ADOレコードセットを作成する
Dim rs As New ADODB.Recordset
'非連結状態ですか?
If Me.Recordset Is Nothing Then
'現在のAccessプロジェクトの接続を取得する
Set cn = CurrentProject.Connection
'レコードセットのプロパティを設定する
'例題02フォームで調査した値と同じ値を設定する
rs.CursorLocation = adUseServer
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
'[医師]テーブルを開く
rs.Open "医師", cn, , , adCmdTable
'フォームのレコードセットを定義する
Set Me.Recordset = rs
'テキストボックスの連結先フィールド名の設定
'テキストボックスの名前が列名に一致している
Me![医師ID].ControlSource = "医師ID"
Me![医師名].ControlSource = "医師名"
Me![医師TEL].ControlSource = "医師TEL"
'クエリーの実行
Me.Requery
Else
'連結を解除する
Me![医師ID].ControlSource = ""
Me![医師名].ControlSource = ""
Me![医師TEL].ControlSource = ""
'レコードセットを閉じる
'以下の命令で、レコードセットを閉じることができる
Me.RecordSource = ""
Exit Sub
'*********************************************
'下記の命令でもレコードセットを閉じることができる
'しかし上の命令の方が簡単です
'*********************************************
'フォームのレコードセットを取得する
Set rs = Me.Recordset
'そのレコードセットを閉じる
rs.Close
'フォームからのレコードセット参照を解除する
Set Me.Recordset = Nothing
End If
End Sub