Microsoft Access 掲示板

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

33 コメント
views
4 フォロー
5
  If IsNull(Me("txt_詳細リンク" & R).Value) Then
    Me("txt_詳細リンク" & R).Value = Nz((Me("txt_詳細リンク" & R).Value), "")
  End If

上記のコードで、詳細リンクがNullの場合、""(空文字列)に変換しています。
下記の次のコードで、

  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

IsNullでNullかどうかをチェックしていますが、その前でNullは""に変換されてますので、このSQLは必ず実行されます。
つまり、""に更新されてしまう。これが下記の原因かと思います。

更新の度に直前にUPDATEしたパスが消えてしまう

対策としては、前者のコードは削除して、後者のコードを下記に修正すればどうでしょうか。

  If Nz(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

上記以外の該当部分も同様に修正してください。

通報 ...