2

我在主窗体上有一个命令按钮,单击该按钮时,将循环遍历子窗体的显示记录上的字段,并更改该字段中所有数据的值以匹配主窗体上未绑定的组合框的值。这样用户就可以选择一次更新子表单上的多条记录。该代码可以正常工作,但如果可以将其更改为仅在每条记录为空白时才更新该字段,则该代码将更有用。换句话说,我希望它检查每条记录是否有该字段的空白,然后根据组合框填充它,如果它不为空白或为空,则跳到下一条记录。这就是代码现在的样子。我不太擅长访问 VBA,不确定是否应该使用“Case”或“If”,或者如何将它与下面的代码一起使用。

Private Sub comm_1_Click()
Dim rs As DAO.Recordset

Set rs = Me.Skid1.Form.RecordsetClone
With rs
    .MoveFirst
    Do While Not .EOF
        .Edit
        ![Release Code] = Me.code_updater.Value
         .Update
         .MoveNext
     Loop
 End With
 Set rs = Nothing

End Sub

我已经尝试过了,但它似乎只更新了一些空白记录(很奇怪),我很确定它很接近但不完全。

Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Dim fld As Field

Set rs = Me.Skid1.Form.RecordsetClone
With rs
    .MoveFirst
    Do While Not .EOF
     For Each fld In .Fields

      If IsNull(fld.Value) Then
        .Edit
        ![Release Code] = Me.code_updater.Value
        .Update
         End If
        .MoveNext
          Next

    Loop
End With
Set rs = Nothing

End Sub
4

2 回答 2

1

我怀疑你想要

Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Dim fld As Field

Set rs = Me.Skid1.Form.RecordsetClone
With rs
    .MoveFirst
    Do While Not .EOF
      ''Anything, space filled, null, ZLS
      If Trim(![Release Code] & "") = "" Then
        .Edit
        ![Release Code] = Me.code_updater.Value
        .Update
      End If
      .MoveNext
    Loop
End With
Set rs = Nothing

End Sub

我建议您编辑您的表格,并通过将文本数据类型的“允许零长度”属性设置为“否”来确保它不会接受零长度字符串。

于 2013-03-14T01:24:27.687 回答
0

这有什么区别吗?它检查空白字段和​​ NULL 字段 - 是的,它们是两个不同的东西!

Private Sub comm_1_Click()
Dim rs As DAO.Recordset
Dim fld As Field

Set rs = Me.Skid1.Form.RecordsetClone
With rs
.MoveFirst
Do While Not .EOF
 For Each fld In .Fields

  If (IsNull(fld.Value) Or fld.Value = "")Then
    .Edit
    ![Release Code] = Me.code_updater.Value
    .Update
     End If
    .MoveNext
      Next

Loop
End With
Set rs = Nothing

End Sub
于 2013-03-14T00:41:38.420 回答