完結しているMDBでテーブルを扱うためのサンプルクラスモジュール
1つのMDBでアプリケーションが完結している(データベース、フォームやレポートなどが全て詰め込んである)場合を前提とした、テーブル操作用のクラスモジュールです。
サンプルクラスモジュール
このサンプルは、クラスモジュールとして作成してください。基本的には「アドレス帳を作ってみよう for Access 2000~2003+VBA」のサンプルクラスモジュールと、ほぼ同じ内容になっています。

Option Compare Database
Option Explicit

'[M] : このクラスのメソッド
'[P] : このクラスのプロパティ

Private objADOCON As ADODB.Connection 'コネクション用
Private objADORS  As ADODB.Recordset  'レコードセット用
Private objError  As Errors           'エラー情報取得用

'----------------------------------------------------------------------
'コンストラクタ
'----------------------------------------------------------------------
Private Sub Class_Initialize()

    'コネクションオブジェクト変数の作成
    Set objADOCON = Application.CurrentProject.Connection

End Sub

'----------------------------------------------------------------------
'デストラクタ
'----------------------------------------------------------------------
Private Sub Class_Terminate()

    On Error Resume Next

    objADOCON.Close '念のため閉じる
    objADORS.Close  '念のため閉じる

    Set objADOCON = Nothing
    Set objADORS = Nothing

End Sub

'----------------------------------------------------------------------
'[M]SQLの実行(レコードセット有り用)
'----------------------------------------------------------------------
Public Function ExecSelect(SQL As String) As Boolean

    Dim tmpErr As Long

    On Error Resume Next

    objADORS.Close '念のため閉じておく
    Set objADORS = objADOCON.Execute(SQL)
    tmpErr = Err.Number

    On Error GoTo 0

    'SQLを実行時の結果を判定
    If tmpErr = 0 Then
       ExecSelect = True
    Else
       ExecSelect = False
    End If

    Set objError = objADOCON.Errors

End Function

'----------------------------------------------------------------------
'[M]SQLの実行(レコードセット無し用)
'----------------------------------------------------------------------
Public Function ExecSQL(SQL As String) As Boolean

    Dim tmpErr As Long

    On Error Resume Next

    Call objADOCON.Execute(SQL)
    tmpErr = Err.Number

    On Error GoTo 0

    'SQLを実行時の結果を判定
    If tmpErr = 0 Then
       ExecSQL = True
    Else
       ExecSQL = False
    End If

    Set objError = objADOCON.Errors

End Function

'----------------------------------------------------------------------
'[M]トランザクション開始
'----------------------------------------------------------------------
Public Sub BeginTrans()

    objADOCON.BeginTrans

End Function

'----------------------------------------------------------------------
'[M]コミット
'----------------------------------------------------------------------
Public Sub Commit()

    objADOCON.CommitTrans

End Function

'----------------------------------------------------------------------
'[M]ロールバック
'----------------------------------------------------------------------
Public Sub Rollback()

    objADOCON.RollbackTrans

End Function

'----------------------------------------------------------------------
'[P]レコードセット参照
'----------------------------------------------------------------------
Public Property Get GetRS() As ADODB.Recordset

    Set GetRS = objADORS

End Property

'----------------------------------------------------------------------
'[P]エラー情報参照
'----------------------------------------------------------------------
Public Property Get GetErr() As Errors

    Set GetErr = objError

End Property
Copyright(C) 1999-2006 結城圭介。 All rights reserved