現在位置 : HOME > ITの活用 > プログラミング > データベースの操作(ADO) |
Page Index
|
||||||||||
|
||||||||||
(別ページへジャンプ) | ||||||||||
コードサンプルを中心にプログラミングに必要な情報を提供しています | ||||||||||
|
||||||||||
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 |
|