VBScriptでAccessのデータを操作する
VBScriptでAccessのデータを操作することができる。
前提として[C:\Temp]にAccessデータベース[Test.accdb]を用意し、以下のテーブルを作成する。
テーブル名:テーブル1
フィールド名:カラム1(テキスト型)、カラム2(数値型)
データベースの接続と切断
Accessデータベースへの接続と切断は以下のコードで実現できる。
1 2 3 4 5 6 7 | 'データベース接続 Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\Temp\Test.accdb;" 'データベース開放 cn.Close Set cn = Nothing |
レコードセットの取得
以下のコードで対象テーブルのレコードセットを取得することができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 'データベース接続 Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\Temp\Test.accdb;" 'レコードセット取得 Set rs = CreateObject("ADODB.Recordset") const adOpenKeyset = 1 const adLockOptimistic = 3 rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'データの表示 rs.MoveFirst Do Until rs.EOF MsgBox "カラム1[" & rs.Fields(0) & "]" & vbCrLf & "カラム2[" & rs.Fields(1) & "]" rs.MoveNext Loop 'レコードセット開放 rs.Close Set rs = Nothing 'データベース開放 cn.Close Set cn = Nothing |
データの検索
以下のコードで対象テーブルのレコードセットからデータを検索することができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 'データベース接続 Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\Temp\Test.accdb;" 'レコードセット取得 Set rs = CreateObject("ADODB.Recordset") const adOpenKeyset = 1 const adLockOptimistic = 3 rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'データの表示 rs.MoveFirst Do Until rs.EOF 'データ検索 rs.Find "カラム2=200" If rs.EOF = False Then MsgBox "カラム1[" & rs.Fields(0) & "]" & vbCrLf & "カラム2[" & rs.Fields(1) & "]" rs.MoveNext End If Loop 'レコードセット開放 rs.Close Set rs = Nothing 'データベース開放 cn.Close Set cn = Nothing |
データの更新
以下のコードで対象テーブルのレコードセットのデータを更新することができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 'データベース接続 Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\Temp\Test.accdb;" 'レコードセット取得 Set rs = CreateObject("ADODB.Recordset") const adOpenKeyset = 1 const adLockOptimistic = 3 rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'データの表示 rs.MoveFirst Do Until rs.EOF 'データ検索 rs.Find "カラム1='ccc'" If rs.EOF = False Then MsgBox "【更新前】" & vbCrLf & "カラム1[" & rs.Fields(0) & "]" & vbCrLf & "カラム2[" & rs.Fields(1) & "]" 'データ更新 rs.Fields(1) = 450 rs.Update MsgBox "【更新後】" & vbCrLf & "カラム1[" & rs.Fields(0) & "]" & vbCrLf & "カラム2[" & rs.Fields(1) & "]" rs.MoveNext End If Loop 'レコードセット開放 rs.Close Set rs = Nothing 'データベース開放 cn.Close Set cn = Nothing |
データの追加
以下のコードで対象テーブルのレコードセットにデータを追加することができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 'データベース接続 Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\Temp\Test.accdb;" 'レコードセット取得 Set rs = CreateObject("ADODB.Recordset") const adOpenKeyset = 1 const adLockOptimistic = 3 rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic 'データの追加 rs.AddNew 'フィールドに値をセット rs.Fields(0) = "eee" rs.Fields(1) = 500 'データベース更新 rs.Update 'レコードセット開放 rs.Close Set rs = Nothing 'データベース開放 cn.Close Set cn = Nothing |