访问。如果记录为空,如何更改它?

时间:2018-10-06 11:59:54

标签: ms-access

我有这张桌子和这段代码

CAMPO10。 CAMPO12

1 01012018

2 01012018

1 05012018

2-

110012018

2 10012018

strSQL = "SELECT * from MESERIFERIMENTO;"
rs.Open strSQL, cnn, 3, 3
Do While Not rs.EOF
If rs("Campo10") = 1 Then
campo4 = rs("Campo10")
campo5 = rs("Campo12")
End If
If rs("Campo10") = "2" And IsNull(rs.Fields("Campo12").Value) Then
MsgBox "Has nulls"
strSQL = "Update MESERIFERIMENTO SET [Campo12] ='" & campo5 & "' ;"
DoCmd.RunSQL strSQL
End If
rs.MoveNext
Loop
rs.Close

谢谢

2 个答案:

答案 0 :(得分:0)

赞:

strSQL = "SELECT * from MESERIFERIMENTO;"

rs.Open strSQL, cnn, 3, 3

Do While Not rs.EOF
    If rs("Campo10").Value = 1 Then
        campo5 = rs("Campo12")
    End If
    If rs("Campo10").Value = 2 And IsNull(rs.Fields("Campo12").Value) Then
        MsgBox "Has nulls"
        rs("Campo12").Value = campo5
        rs.Update
    End If
    rs.MoveNext
Loop
rs.Close

答案 1 :(得分:0)

如果不期望0,则可以在查询中使用Nz函数将空值转换为0。

strSQL = "SELECT Campo10, Nz(Campo12,0) from MESERIFERIMENTO;"
rs.Open strSQL, cnn, 3, 3
Do While Not rs.EOF
  If rs("Campo10") = 1 Then
    campo4 = rs("Campo10")
    campo5 = rs("Campo12")
  End If
  If rs("Campo10") = "2" And rs("Campo12")=0 Then
    MsgBox "Has nulls"
    strSQL = "Update MESERIFERIMENTO SET [Campo12] ='" & campo5 & "' ;"
    DoCmd.RunSQL strSQL
  End If
  rs.MoveNext
Loop
rs.Close