2017-09-01 120 views
1

我正在嘗試編寫一個函數來循環連續子表單中的記錄並清除特定字段中的值(Entity_Under_Consideration,這是一個由組合框表示的查找字段子表單)爲每個記錄。訪問VBA:編輯連續子表單中的記錄集

以下不起作用。它也不會拋出任何錯誤。任何人都可以看到我要去哪裏嗎?

Public Function clearEUCData(subform As Control) 

    'take a clone of the subform's recordset 
    Dim entityRecSet As Recordset 
    Set entityRecSet = subform.Form.Recordset.Clone() 

    'if there are any records in the subform... 
    If entityRecSet.RecordCount > 0 Then 

     'start with the first record 
     entityRecSet.MoveFirst 

     'iterate through each row, clearing the data in the EUC field 
     Do Until entityRecSet.EOF 

      With entityRecSet 
       .Edit 
        Entity_Under_Consideration = 0 
       .Update 
      End With 

     entityRecSet.MoveNext 
     Loop 

    End If 

    'close and purge the cloned recordset 
    entityRecSet.Close 
    Set entityRecSet = Nothing 

End Function 
+0

你似乎並沒有被刷新更新克隆記錄後的形式記錄? – Minty

+0

但是,這些更改仍然應用於表單的記錄集。這是怎麼發生的? – DrewCraven

+1

忍者訪問侏儒在後臺工作?記錄集更新通常會立即顯示出來,但並非總是如此......可能取決於它是本地表還是鏈接表如何連接。 – Minty

回答

4

你將有更明確的:

With entityRecSet 
    .Edit 
     .Fields("Entity_Under_Consideration").Value = 0 
    .Update 
End With 
+1

向所有代碼模塊添加「Option Explicit」是最佳做法。該選項會導致未聲明的變量「Entity_Under_Consideration」出錯。在VBA IDE中,您還可以設置Tools |選項|編輯|代碼設置| [x]需要變量聲明,它會自動將Option Explicit添加到所有新的代碼模塊。 –