2017-09-01 1 views
1

Ich versuche, eine Funktion zu schreiben, die Datensätze in einem fortlaufenden Teilformular durchlaufen und den Wert in einem bestimmten Feld (Entity_Under_Consideration, ein Lookup-Feld durch eine Combobox aktiviert) Unterformular) für jeden Datensatz.Zugriff VBA: Bearbeiten eines RecordSet in einem fortlaufenden Unterformular

Folgendes funktioniert nicht. Es wirft auch keine Fehler auf. Kann jemand sehen, wo ich falsch liege?

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

Sie erscheinen nicht die Formen-Cord werden erfrischend nach dem geklonten Cord-Aktualisierung? – Minty

+0

Und noch werden die Änderungen auf das Re-Cord-Set des Formulars angewandt. Wie ist das passiert? – DrewCraven

+1

Ninja Access Gnome arbeiten im Hintergrund? Häufig werden Recordset-Updates sofort angezeigt, nur nicht immer ... Kann davon abhängen, ob es sich um eine lokale Tabelle handelt oder wie eine verknüpfte Tabelle verbunden ist. – Minty

Antwort

4

Sie müssen mehr explizit sein:

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

Es ist die beste Vorgehensweise, allen Codemodulen 'Option Explicit' hinzuzufügen. Diese Option hätte einen Fehler bei der nicht deklarierten Variablen 'Entity_Under_Consideration' verursacht. In der VBA-IDE können Sie auch 'Tools | Optionen | Editor | Codeeinstellungen | [x] Erfordert Variablendeklarationen, die Option Explicit automatisch allen neuen Codemodulen hinzufügen. –

Verwandte Themen