VBScript 【データベース操作編】
目次
データベースへの接続
データベースに接続する処理について解説します。
プログラムソース
Option Explicit
Dim Cn
Dim strCn
strCn = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = strCn
Cn.Open
MsgBox "接続成功"
Cn.Close
Set Cn = Nothing
解説
ADODB.Connection
データベース接続に使用するオブジェクト
Connection.ConnectionString = 接続文字列
接続文字列を設定します。
Connection.Open
データベースに接続します。
Connection.Close
データベースとの接続を切断します。
データの取得
データを取得する処理について解説します。
プログラムソース
Option Explicit
Dim Cn, Rs
Dim strCn, strSQL
strCn = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = strCn
Cn.Open
strSQL = "SELECT * FROM 社員マスタ"
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open strSQL, Cn
Do Until Rs.EOF
MsgBox Rs("社員コード").Value & ":" & Rs("社員名").Value
Rs.MoveNext
Loop
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
解説
ADODB.Recordeset
データ操作に使用するオブジェクト
Recordeset.Open SQL文 Connectionオブジェクト
レコードセットを作成します。
Recordset.Close
レコードセットを閉じます。
SQLの実行
SQLを実行する処理について解説します。
プログラムソース
Option Explicit
Dim Cn
Dim strCn, strSQL
strCn = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = strCn
Cn.Open
strSQL = "UPDATE 社員マスタ " & _
"SET 部門コード = 3 " & _
"WHERE 社員コード = 4"
Cn.Execute strSQL
MsgBox "更新完了"
Cn.Close : Set Cn = Nothing
解説
Connection.Execute SQL文
指定されたSQL文を実行します。
トランザクション処理
トランザクション処理について解説します。
プログラムソース
Option Explicit : On Error Resume Next
Dim Cn, strCn, strSQL, blnErr
blnErr = True
strCn = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Set Cn = CreateObject("ADODB.Connection")
Cn.ConnectionString = strCn
Cn.Open
Cn.BeginTrans
strSQL = "INSERT 社員マスタ VALUES(1, '社員A', 1)"
Cn.Execute strSQL
If Err.Number <> 0 Then blnErr = False
strSQL = "INSERT 所有資格マスタ VALUES(1, 1, '簿記3級')"
Cn.Execute strSQL
If Err.Number <> 0 Then blnErr = False
If blnErr = True Then
Cn.CommitTrans : MsgBox "更新完了"
Else
Cn.RollbackTrans : MsgBox "更新失敗"
End If
Cn.Close : Set Cn = Nothing
解説
Connection.BeginTrans
トランザクション処理を開始します。
Connection.CommitTrans
更新内容を確定する場合は、コミットします。
Connection.RollbackTrans
更新内容を破棄する場合は、ロールバックします。
データベース別の接続文字列
データベース別の接続文字列については、ご覧のとおりです。
プログラムソース
Oracle
strCn = "Provider=OraOLEDB.Oracle;" & _
"Data Source=ホスト名:1521/XEPDB1;" & _
"User Id=MYUSER;Password=MYUSER;"
MySQL
strCn = "DRIVER={MySQL ODBC 8.0 ANSI Driver};" & _
"SERVER=localhost;PORT=3306; " & _
"DATABASE=myschema;UID=root;PASSWORD=manager;"
Access
strCn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Users\home\Desktop\Database.accdb"