BEAGLE-HC 医薬品、医療機器の研究・開発 ポータルサイト
 現在位置 : HOME > ITの活用 プログラミング > データベースの操作(ADO)
Page Index
高品質、高効率を実現する
プログラミング技術
情報BOX 参考図書
(別ページへジャンプ) 
コードサンプルを中心にプログラミングに必要な情報を提供しています
SAS プログラミング Excel/VBA プログラミング Access/VBA プログラミング
SQL LiveCycle Designer  
 
 ADO は OLEDB プロバイダが提供されているあらゆるデータベースとの通信を行うことを視野にいれたオブジェクトライブラリです。 ADOは、OLE に対応したアプリケーション(Visual Basic, Access, Excelなど)から利用することができます。

ADOオブジェクト モデル

 
Page Index
  @事前の準備
  Aオブジェクト変数の定義
  Bデータベースに接続
  Cレコードセットを作成
  Dレコードを検索
  Eレコードを更新
  Fレコードを追加
  Gレコードを削除
  Hオブジェクトを閉じる
 
事前の準備 ↑ このページの最初へ
EXCELシステムの定義
 ADO
に関するデータ型を明示する場合は、ADO
を参照設定する必要があります。
 VBA上の「ツール」メニューの「参照設定」で、「Microsoft ActiveX Data Objects 2.8 Library」にチェックを付けて下さい。

ORACLEシステムの定義
 (tnsnames.oraなど)の定義
 
オブジェクト変数 ↑ このページの最初へ
データベースオブジェクトの変数を定義します
  Dim wk_CN As ADODB.Connection

  Dim wk_RS As ADODB.Recordset
 
データベースに接続 ↑ このページの最初へ
ADO+ODBCの場合
  Private wk_CN As New ADODB.Connection

  ConnectionString = "DSN=<接続文字列:tnsnames.oraで定義>
  ConnectionString = ConnectionString & User ID=<ユーザID>
  ConnectionString = ConnectionString & Password=<パスワード>;"
  wk_CN.ConnectionString = ConnectionString
    wk_CN.Open

  Set wk_RS = New ADODB.Recordset

 ※参考  OraOLEDB.Oracle;DataはOrcleのドライバー名です
       接続文字列は、 こちらを参照
       Data Source接続文字列属性は、tnsnames.oraファイルで設定されている接続先情報で、
       これを基にOracleへ接続します
       tnsnames.oraファイルにはどのホストのどの接続名に接続するかを記述します。
       このファイルは、クライアントマシンの%ORACLE_HOME%\network\adminフォルダにあります。
 
ADO+OLE DBの場合
  Set wk_CN = New ADODB.Connection

  ConnectionString = "Provider=OraOLEDB.Oracle;
  ConnectionString = ConnectionString & Data Source=<接続文字列:tnsnames.oraで定義>
  ConnectionString = ConnectionString & User ID=<ユーザID>
  ConnectionString = ConnectionString = & Password=<パスワード>;"
  wk_CN.ConnectionString = ConnectionString
    wk_CN.Open

  Set wk_RS = New ADODB.Recordset

 ※参考  OraOLEDB.Oracle;DataはOrcleのドライバー名です
       接続文字列は、 こちらを参照
       Data Source接続文字列属性は、tnsnames.oraファイルで設定されている接続先情報で、
       これを基にOracleへ接続します
       tnsnames.oraファイルにはどのホストのどの接続名に接続するかを記述します。
       このファイルは、クライアントマシンの%ORACLE_HOME%\network\adminフォルダにあります。
 
レコードセットを作成 ↑ このページの最初へ
@Openメソッドによる方法
  wk_RS.Open "テーブル名",wk_CN,adOpenstatic,adLockReadonly

  以下の記述も可
  wk_RS.Sousce ="テーブル名"
  wk_RS.Activeconnection = wk_CN
  wk_RS.CursorType = "adOpenstatic"
  wk_RS.LockType = "adLockReadonly"
  wk_RS.Open


ASQLステートメントによる方法
  Dim wk_CN As ADODB.Connection
  Dim wk_RS As ADODB.Recordset
  Dim wk_SQL As String
  Set wk_CN = CurrentProject.Connection
  Set wk_RS = New ADODB.Recordset
  wk_SQL = "SELECT * FROM ・・・・・・"
  wk_RS.Open SQL , wk_CN, adOpenKeyset, adLockOptimistic

BConnectionオブジェクトのExecuteメソッドによる方法
  (前方スクロールおよび読み取り専用)
  Set wk_RS = wk_CN.Execute(SQL文/テーブル名/クエリ名)


CCommandオブジェクトのExecuteメソッド
  Dim wk_CN As ADODB.Connection
  Dim wk_CMD As ADODB.Command
  Dim wk_RS As ADODB.Recordset
  Set wk_CN = CurrentProject.Connection
  Set wk_CMD = New ADODB.Command
  wk_CMD.ActiveConnection = wk_CN
  wk_CMD.CommandText = "SQL文/テーブル名/クエリ名"
  Set wk_RS = wk_CMD.Execute
 
レコードを検索 ↑ このページの最初へ
rs.Open "テーブル", cn,adOpenStatic,adLockReadOnly

@一致検索
  wk_RS.Find "テーブル項目名='アイウ'"
  If Not wk_RS.EOF Then
    MsgBox rs!テーブル項目名
  End If

ALike検索
  wk_RS.Find "テーブル項目名 like '*アイウ*'"

Bロジックによる検索
  wk_RS.MoveFirst
  Do Until wk_RS.EOF
    wk_RS.Find "テーブル項目名='アイウ'"
    If wk_RS.EOF Then
      Exit Do
    Else
      MsgBox
    End If
  wk_RS.MoveNext
 Loop
 
レコードを更新 ↑ このページの最初へ
  Dim wk_CN As ADODB.Connection
  Dim wk_RS As ADODB.Recordset
  Set wk_CN = CurrentProject.Connection
  Set wk_RS = New ADODB.Recordset
  wk_RS.Open "テーブル名", wk_CN, adOpenKeyset, adLockOptimistic

@Update メソッドを呼び出して、フィールド名および値を引数として引き渡す方法
  wk_RS.Update "フィールド名1", "値"
  wk_RS.Update "フィールド名2", "値"

AField オブジェクトの Value プロパティに値を代入し、Update メソッドを呼び出す方法
  wk_RS!フィールド名1 = "値"
  wk_RS!フィールド名2 = "値"
  wk_RS.Update

BCancelUpdateメソッド
  Update メソッドを呼び出す前にカレントレコードまたは新規レコードに加えた変更をキャンセルする
   wk_RS.CancelUpdate
  
レコードを追加 ↑ このページの最初へ
  Dim wk_CN As ADODB.Connection
  Dim wk_RS As ADODB.Recordset
  Set wk_CN = CurrentProject.Connection
  Set wk_RS = New ADODB.Recordset
  wk_RS.Open "テーブル名", wk_CN, adOpenKeyset, adLockOptimistic

  wk_RS.AddNew
    wk_RS!フィールドA = nnn
    wk_RS!フィールドB = ”・・・・・”
    wk_RS!フィールドC =    
  wk_RS.Update
 
レコードを削除する ↑ このページの最初へ
削除の手順
 ・削除するレコードをカレントレコードに移動する
   wk_RS.MoveNext
 ・レコードを削除する
   wk_RS.Delete
 
オブジェクトを閉じる ↑ このページの最初へ
開いている DAO オブジェクト(Database、TableDef、Recordset、QueryDef)を閉じる
  wk_RS.Close
  Set wk_RS = Nothing

  wk_DB.Close
  Set wk_DB = Nothing

↑ このページの最初へ

   ご意見・ご感想をお寄せください。 ‖ お問い合わせはこちらから ‖ このサイトについて           サイトマップ  ‖
  Copyright 2006 - 2013 uTRAM Corp. All Rights Reserved
 
PHARCIS(ヘルスケア最新情報提供)
Facebook for PHARCIS
ClinMark8
アクセスランキング
(2013年5月)

1位 企業ニュース
2位 売上ランキング
3位 メディアニュース
4位 製薬会社
5位 治療薬の最前線
6位 決算短信一覧
7位 データブック
8位 製薬会社研究
9位 イベントカレンダ
10位 パイプラインニュース