適材適所

パソコン作業の自動化・効率化のための情報を発信するブログ(VBA,PowerShellなど)

VBAでAccessへの接続をSQLで簡単に行う_その2

前回Accessへの接続を簡単にする2つのクラスを紹介しました。

www.tekizai.net

前回は、ただテーブルを作るだけだったので今回は、2つのクラスを使ってレコードの追加処理をやってみたいと思います。

前回登場した、「Database.accdb」に作ったsampleテーブルにレコードを追加するサンプルです。

Option Explicit
Sub test()
    Dim cf As ConnectionFactory: Set cf = New ConnectionFactory
    Dim cw As ConnectionWrapper: Set cw = New ConnectionWrapper
    
    On Error GoTo catch
    '接続を確立
    cw.setConnection cf.getAcConnection(ThisWorkbook.Path & "\db.accdb")
    'トランザクションの開始
    cw.beginTransaction
    'レコード追加処理
    cw.execute "INSERT INTO sample (name) Values('tekizai')"
    'トランザクションのコミット
    cw.commitTransaction
    GoTo finally
catch:
    'ロールバック処理
    cw.rollback
finally:
    
End Sub

ちなみにidフィールドはcounterなので勝手に連番が入ります。

また、トランザクションを開始しないと、いきなりレコードが追加されます。

きっと普通にADOを使うよりコードはすっきりしている!!はず・・・。

次は、レコードの参照をやってみたいと思います。