如何将日期字段设置为空值

3
我试图将日期的值重置为null,将体重的值重置为null。
我尝试了以下代码,但只有体重被设置为0,日期未被设置为null:
Private Sub Form_Load()
    Me.Text42.Value = ""

    Dim i As Integer
    Dim Db6 As Database
    Dim Rs6 As Recordset
    Dim Trn6 As String
    Set Db6 = CurrentDb
    Set Rs6 = Db6.OpenRecordset("GoatMasterTable")

    Do While Not Rs6.EOF
        If Rs6.Fields("Recentweight") > 0 Then
            Rs6.Edit
            Rs6.Fields("RecentWeight") = 0
            Rs6.Fields("RecentWeightDate") = """" Or IsNull(Rs6!RecentWeightDate)
            Rs6.Update
        End If
        Rs6.MoveNext
    Loop

    Rs6.Close
    Set Rs6 = Nothing
    Db6.Close
End Sub

首先:熟悉一下Null。其次:不要使用db.Close!你想要的是Set db = Nothing,但这在这里并不是必要的(但也不会有太大的影响),因为VBA计算实例的对象引用,并且如果它们超出范围,就会销毁它们。第三:使用@LeeMacs的答案! - ComputerVersteher
2个回答

1

如果您不需要进行基于记录的计算,仅需将每个记录设置为相同的值,则更简单的方法是执行类似以下SQL语句:

update GoatMasterTable set RecentWeight = 0, RecentWeightDate = Null where RecentWeight > 0

作为这样,您的函数可能会变成:

Private Sub Form_Load()
    Me.Text42 = ""
    With CurrentDb
        .Execute "update GoatMasterTable set RecentWeight = 0, RecentWeightDate = Null where RecentWeight > 0"
    End With
End Sub

你还需要确保GoatMasterTable中的RecentWeightDate字段允许空值。

0

你所需要做的就是将日期字段设置为Null

Rs6.Fields("RecentWeight").Value = 0
Rs6.Fields("RecentWeightDate").Value = Null

当然,表中的字段RecentWeightDate必须允许Null值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接