Microsoft Access 掲示板

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

33 コメント
views
4 フォロー
1
wazawaza 2024/01/31 (水) 09:04:24

一部を略しましたが、更新文です。


Private Sub btn_更新_Click()
  Dim sqlList As Collection
  Set sqlList = New Collection  'コレクションを作成
  
  〜省略〜

  Dim R As Long
  For R = 1 To 10
  
  If IsNull(Me("txt_詳細リンク" & R).Value) Then
    Me("txt_詳細リンク" & R).Value = Nz((Me("txt_詳細リンク" & R).Value), "")
  End If
  Debug.Print "1"
  If Not IsNull(Me("txt_特記ID" & R).Value) Then '「txt_特記ID」が空でなければ
    strSQL = _
      "UPDATE T_特記事項 " & _
      "SET " & _
        "口座番号 = '" & Me.txt_口座番号.Value & "', " & _
        "特記事項 = '" & Me("txt_特記事項" & R).Value & "', " & _
        "特記事項詳細 = '#" & Replace(Me("txt_詳細リンク" & R).Value, """", "") & "#' " & _
      "WHERE ID = " & Me("txt_特記ID" & R).Value & ";"
      sqlList.Add strSQL
  ElseIf Not IsNull(Me("txt_特記事項" & R).Value) Then  '「txt_特記事項」が空でなければ
    strSQL = _
      "INSERT INTO T_特記事項 (口座番号, 特記事項, 特記事項詳細) " & _
      "VALUES" & _
        "('" & Me.txt_口座番号.Value & "', " & _
        "'" & Me("txt_特記事項" & R).Value & "', " & _
        "'" & Me("txt_詳細リンク" & R).Value & "');"
      sqlList.Add strSQL
    End If
  Next R
  
  Dim Z As Long
  For Z = 1 To 10
  Debug.Print "2"
  If IsNull(Me("txt_クレーム詳細リンク" & Z).Value) Then
    Me("txt_クレーム詳細リンク" & Z).Value = Nz((Me("txt_クレーム詳細リンク" & Z).Value), "")
  End If
  
  If Not IsNull(Me("txt_クレームID" & Z).Value) Then  '「txt_クレームID」が空でなければ
  '実行
    strSQL = _
      "UPDATE T_クレーム履歴 " & _
      "SET " & _
        "口座番号 = '" & Me.txt_口座番号.Value & "', " & _
        "発生年月 = '" & Me("txt_発生年月" & Z).Value & "', " & _
        "クレーム内容 = '" & Me("txt_クレーム内容" & Z).Value & "', " & _
        "是正処置 = '" & Me("txt_是正処置" & Z).Value & "', " & _
        "クレーム詳細 = '#" & Replace(Me("txt_クレーム詳細リンク" & Z).Value, """", "") & "#' " & _
      "WHERE ID = " & Me("txt_クレームID" & Z).Value & ";"
      sqlList.Add strSQL
    ElseIf Not IsNull(Me("txt_クレーム内容" & Z).Value) Then  '「txt_クレーム内容」が空でなければ
  '実行
    strSQL = _
      "INSERT INTO T_クレーム履歴 (口座番号, 発生年月, クレーム内容, 是正処置, クレーム詳細) " & _
      "VALUES" & _
        "('" & Me.txt_口座番号.Value & "', " & _
        "#" & Me("txt_発生年月" & Z).Value & "#, " & _
        "'" & Me("txt_クレーム内容" & Z).Value & "', " & _
        "'" & Me("txt_是正処置" & Z).Value & "', " & _
        "'" & Me("txt_クレーム詳細リンク" & Z).Value & "');"
      sqlList.Add strSQL
    End If
  Next Z
  
  Dim errMsg As String
  errMsg = tryExecute(sqlList)  'SQLリストを実行してメッセージを受け取る
  
  If errMsg <> "" Then  'メッセージが空ではない(エラーがあった)場合
    MsgBox errMsg, vbCritical, "エラー" '受け取ったメッセージを出力
    Exit Sub  '終了
  End If
  
  Call loadForm  '読込を呼び出す
  MsgBox "更新しました", vbInformation, "完了" 'メッセージを出力
  DoCmd.Close acForm, "F_作業標準入力", acSaveNo
End Sub
通報 ...