hatena
hatena
2024/01/31 (水) 14:31:00
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
上記以外の該当部分も同様に修正してください。
通報 ...