種別 | データベース操作 |
---|---|
説明 | SQLで操作するレコードデータの取得 |
構文 | DbRecordData(name[, rno]) |
引数 | name:取得する項目名 rno:レコードセット番号。省略時は0 |
戻り値 | 取得データ |
使用例 | '2つのデータベースと2つのレコードセットから、リレーションさせてデータを取得する Dim sFile,sDir,sName,sCn,ret 'PckDBに接続するための文字列 sCn = "Provider=SQLOLEDB;Data Source=(local)\SQLEXPRESS;Initial Catalog=PckDB;Trusted_Connection=Yes;" ret = DbOpen(sCn,1) 'PckDBデータベースのオープン(データベース番号=1) if ret < 0 then MsgBox("PckDBデータベースのオープン エラー = " & ret) exit sub endif 'MgusDBに接続するための文字列 sCn = "Provider=SQLOLEDB;Data Source=(local)\SQLEXPRESS;Initial Catalog=MgusDB;Trusted_Connection=Yes;" ret = DbOpen(sCn,2) 'MgusDBデータベースのオープン(データベース番号=2) if ret < 0 then MsgBox("MgusDBデータベースのオープン エラー = " & ret) exit sub endif Dim sSQL,CursorType,LockType,Options,i,ID 'PckDB/健診テーブルのレコードセットのオプション / CursorType・LockType・Optionsの詳細は、https://learn.microsoft.com/ja-jp/office/client-developer/access/ desktop-database-reference/open-method-ado-recordset を参照ください。 sSQL = "SELECT * FROM 健診テーブル" CursorType=0 LockType=0 Options=0 'PckDB/健診テーブルのレコードセットのオープン ret = DbRecordOpen(sSQL, CursorType, LockType, Options, 1, 1) if ret < 0 then MsgBox("PckDB/健診テーブルのレコードのオープン エラー = " & ret) exit sub endif i = 1 Do 検査日[i] = DbRecordData("検査日",1) 患者ID[i] = DbRecordData("患者ID",1) 氏名[i] = DbRecordData("氏名",1) '医師IDからヒモづけし、医師名をMgusDBから取り出す ID = DbRecordData("医師ID",1) 'MgusDB/UserMasterのレコードセットのオープン sSQL = "SELECT * FROM UserMaster WHERE UserID = '" & ID & "';" ret = DbRecordOpen(sSQL, CursorType, LockType, Options, 2, 2) if ret >= 0 then 健診医師名[i] = DbRecordData("Name",2) else 健診医師名[i] = ID & " 該当なし" endif DbRecordClose(2)'MgusDB/UserMasterのレコードセットのクローズ i = i + 1 ret = DbRecordMove(0, 1)'PckDB/健診テーブル、次のレコードを取得 Loop While ret = 0 DbRecordClose(1) 'PckDB/健診テーブルのレコードセットのクローズ DbClose(1)'データベースのクローズ DbClose(2) 'データベースのクローズ |
実例 | |
備考 | 関連する関数(DbClose、DbRecordOpen、DbRecordClose、 DbRecordData、DbRecordSet、DbRecordMove、DbRecordMoveNo、 DbRecordAddNew、DbRecordDelete、DbRecordUpdate) ver8以降 |