先日の記事では「次回はクラスモジュール」と書いたが、あれだけでは接続と切断だけなので、実際のDBアクセスのコードも追加しておく。先日の記事のコードと同じモジュール内に加えて使う


' 追加分

'----------------------------------------
' トランザクション開始
'----------------------------------------
Public Sub transBEGIN()
Con.beginTrans

End Sub

'----------------------------------------
' トランザクション確定
'----------------------------------------
Public Sub transCOMMIT()
Con.commitTrans

End Sub

'----------------------------------------
' トランザクション取消
'----------------------------------------
Public Sub transROLLBACK()
Con.rollbackTrans

End Sub

'----------------------------------------
' DBアクセス関連
'----------------------------------------
Public Sub ExecChgSQL(sSQL As String)

If Not (Rs Is Nothing) Then
Set Rs = Nothing
End If

sSQL = Replace(sSQL, "''", "NULL")

Con.Execute (sSQL)
Set Rs = Nothing

End Sub

'----------------------------------------
' DB 選択系処理
'----------------------------------------
Public Sub ExecRefSQL(sSQL As String)

Dim iErrCnt As Integer
On Error GoTo PROC_DBERR

If Not (Rs Is Nothing) Then
Set Rs = Nothing
End If

Cmd.CommandText = sSQL
Set Rs = Cmd.Execute

Exit Sub

PROC_DBERR:
If ERR Is Nothing Then
For iErrCnt = 0 To Con.Errors.count - 1
COM.MSG.ERR (Con.Errors(iErrCnt))
Next iErrCnt
Con.Errors.Clear
Else
For iErrCnt = 0 To ERR.count - 1
COM.MSG.ERR (Con.Errors(iErrCnt))
Next iErrCnt
ERR.Clear
End If

End Sub


これは、たぶんだけど、標準モジュール/クラスモジュールのどちらにコピーしても使えると思う。

次回は、これを標準モジュール/クラスモジュールで使った場合、どうなるかを実験することで、標準モジュールとクラスモジュールの差異や、クラスモジュールの使い方の例となればいいだろう。