Microsoft Access 掲示板

UPDATEする度にレコードが消えてしまいます / 2

33 コメント
views
4 フォロー
2
wazawaza 2024/01/31 (水) 09:07:23

複数のSQL実行のためのプロシージャ


 Function tryExecute(sqlList As Collection) As String
 '## 複数のSQLを実行するFunctionプロシージャ(SQLリストをすべて実行してメッセージを受け取る関数)

  'エラーが起きたら「ErrorHandler」へジャンプ
  On Error GoTo ErrorHandler
  
  Dim daoWs As DAO.Workspace
  Set daoWs = DBEngine(0)  'トランザクションをサポートするオブジェクトを作成
  
  Dim daoDb As DAO.Database
  Set daoDb = CurrentDb  '接続
  
  daoWs.BeginTrans  'トランザクション開始
  
  Dim strSQL As Variant
  For Each strSQL In sqlList  'SQL文リストをループ
    daoDb.Execute strSQL  '実行
  Next strSQL
  
  daoWs.CommitTrans  '確定
  
  '成功の場合は空の文字列が入る
  tryExecute = ""
  
  '接続解除へジャンプ
  GoTo Finally
  
'エラー処理
ErrorHandler:
  tryExecute = "Error #: " & Err.Number & vbNewLine & vbNewLine & Err.Description  'エラーの場合はエラーメッセージが入る
  
'接続解除
Finally:
  If Not daoDb Is Nothing Then
    daoDb.Close
    Set daoDb = Nothing
  End If
  If Not daoWs Is Nothing Then  'トランザクション用のオブジェクトを破棄
    daoWs.Close
    Set daoWs = Nothing
  End If
  
End Function


通報 ...