Access形式データベースへの接続(4)レコードの登録と削除
概要
前回でテーブルに列を追加し、いわば入れ物が完成した。今回は中身となるデータを追加する。
レコードを追加する
下表に示した4件のレコードを追加したい。
原子番号 | 元素記号 | 元素名 |
---|---|---|
1 | H | 水素 |
2 | He | ヘリウム |
3 | Li | リチウム |
4 | Be | ベリリウム |
Dim rs
Dim query
Dim activeConnection
Dim cursorType
Dim lockType
Set rs = CreateObject("ADODB.Recordset")
query = "elements" 'テーブル名
activeConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.accdb;" '接続文字列
cursorType = 1 'adOpenKeyset
lockType = 3 'adLockOptimistic
rs.Open query, activeConnection, cursorType, lockType 'レコードセットを開く
'1レコード目を追加
rs.AddNew()
rs.Fields("原子番号") = 1
rs.Fields("元素記号") = "H"
rs.Fields("元素名") = "水素"
'2レコード目を追加
rs.AddNew()
rs.Fields("原子番号") = 2
rs.Fields("元素記号") = "He"
rs.Fields("元素名") = "ヘリウム"
'3レコード目を追加
rs.AddNew()
rs.Fields("原子番号") = 3
rs.Fields("元素記号") = "Li"
rs.Fields("元素名") = "リチウム"
'4レコード目を追加
rs.AddNew()
rs.Fields("原子番号") = 4
rs.Fields("元素記号") = "Be"
rs.Fields("元素名") = "ベリリウム"
rs.Update 'データを更新する
rs.Close 'レコードセットを閉じる
全レコードを参照する
Dim rs
Dim query
Dim activeConnection
Dim cursorType
Dim lockType
Set rs = CreateObject("ADODB.Recordset")
query = "elements" 'テーブル名
activeConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.accdb;" '接続文字列
cursorType = 0 'adOpenForwardOnly
lockType = 1 'adLockReadOnly
rs.Open query, activeConnection, cursorType, lockType 'レコードセットを開く
Dim buf
Dim fld
'見出し
For Each fld In rs.Fields
buf = buf & fld.Name & ","
Next
buf = buf & vbCr
'全レコードの値
Do Until rs.EOF
For Each fld In rs.Fields
buf = buf & fld.Value & ","
Next
buf = buf & vbCr
rs.MoveNext
Loop
rs.Close 'レコードセットを閉じる
Msgbox buf '結果を表示する
原子番号,元素記号,元素名,
1,H,水素,
2,He,ヘリウム,
3,Li,リチウム,
4,Be,ベリリウム
条件に合致するレコードを削除する
元素記号がHから始まるレコードを削除する。
SQLのWHERE句で条件を指定してレコードセットを開く。
Dim rs
Dim query
Dim activeConnection
Dim cursorType
Dim lockType
Set rs = CreateObject("ADODB.Recordset")
query = "SELECT * FROM elements WHERE 元素記号 LIKE 'H%'" 'テーブル名
activeConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.accdb;" '接続文字列
cursorType = 1 'adOpenKeyset
lockType = 3 'adLockOptimistic
rs.Open query, activeConnection, cursorType, lockType 'レコードセットを開く
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
rs.Close 'レコードセットを閉じる