データベース(MDBファイル)関連:ADOでRecordsetを使いデータを追加する

VB2008でAccessのMDBファイルにデータを追加する実行例サンプルです。

データベース(MDBファイル)関連へ



レコードセットで開く構文は
rs.Open テーブル名または選択クエリ名, 開いているConnectionオブジェクト名, カーソルタイプ, ロックタイプ
になります。

カーソルタイプの種類
adOpenStatic 静的カーソル
データの検索またはレポートの作成に使用するための静的コピー。他のユーザーによる追加、変更、削除は表示されない

adOpenFowardOnly 前方専用カーソル
他のユーザーによる追加、変更、削除は確認できない。機能的には静的カーソルと同じ。スクロール方向が前方に限定される分パフォーマンスが向上

adOpenKeyset キーセットカーソル
他のユーザーによるレコードの追加の確認、他のユーザーが削除したレコードへのアクセスはできない。他のユーザーが変更したデータは表示できる。他のユーザーが追加したレコードは表示できない

adOpenDynamic 動的カーソル
他のユーザーによる追加、変更、削除などすべて確認できる。Recordset内での全ての動作が許可されている

ロックタイプの種類
adLockReadOnly 読み取り専用
レコードの変更はできない

adLockOptimistic 共有的ロック
レコード単位の共有的ロックで、Updateメソッドが呼び出した場合にのみレコードを一時的にロックする

adLockPessimistic 排他的ロック
レコードの編集を開始するとロックされ、UpdateメソッドかCancelUpdateメソッドを実行するまで、他のユーザーはレコードの読み取り、編集を行なうことができない

カーソルタイプとロックタイプは省略できますが、省略した場合はadOpenFowardOnly、adLockReadOnlyになります

■ 実行前の設定
メニューの「 プロジェクト 」-「 参照の設定 」の「 COM 」タブで、Microsoft ActiveX Data Object 2.8 Library を追加します。
ADOを参照設定で追加

■実行画面
「Recordsetでデータの追加」ボタンで実行します。
実行フォーム

■追加されたテーブルデータ
Accessでテーブル開いた画面です。
Field1とField2は文字列型、Field3は長整数型です。
2番目のレコードにデータが追加されているのが分かります。
データが追加されたテーブル

■実行コード

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
'データベースファイル名
Dim sfina As String = "C:\sample1.mdb"

CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sfina
CN.Open()
RS.Open("table1", CN, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

'データを追加
RS.AddNew()
RS.Fields("Field1").Value = "RSデータ1"
RS.Fields("Field2").Value = "RSデータ2"
RS.Fields("Field3").Value = 456
RS.Update()
RS.Close()
CN.Close()

End Sub
End Class


Visual Basic 2008 Express Edition実践入門