先日の記事では「次回はクラスモジュール」と書いたが、あれだけでは接続と切断だけなので、実際の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
これは、たぶんだけど、標準モジュール/クラスモジュールのどちらにコピーしても使えると思う。
次回は、これを標準モジュール/クラスモジュールで使った場合、どうなるかを実験することで、標準モジュールとクラスモジュールの差異や、クラスモジュールの使い方の例となればいいだろう。