Ответы, которые вам дали и которые вы, кажется, принимаете в цикле через набор записей DAO. Как правило, это очень неэффективный метод выполнения текста. Например, это:
Set db = CurrentDB()
Set rs = db.OpenRecordset("[sql]")
If rs.RecordCount > 0
rs.MoveFirst
Do While Not rs.EOF
rs.Edit
rs!Field = "New Data"
rs.Update
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
Set db = Nothing
будет намного менее эффективным, чем:
UPDATE MyTable SET Field = "New Data"
, который можно запустить с:
CurrentDb.Execute "UPDATE MyTable SET Field = 'New Data'"
Очень редко случается, что нужно циклически проходить через набор записей, и в большинстве случаев обновление SQL будет на несколько порядков быстрее (а также приведет к тому, что на данные будут удерживаться более короткие блокировки чтения / записи страницы).