DbRecordData

種別 データベース操作
説明 SQLで操作するレコードデータの取得

構文 DbRecordData(name[, rno])
引数 name:取得する項目名
rno:レコードセット番号。省略時は0
戻り値 正常なら0、異常なら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以降