Синтаксис вашего запроса на обновление MS Access неверен, общий синтаксис:
update [table]
set [field1] = [value1], [field2] = [value2], ...
Следовательно, ваш запрос может стать:
DoCmd.RunSQL _
"UPDATE Service_MasterData " & _
"SET " & _
" [Service Aquired on] = '" & sao & "', " & _
" [Next Service due on] = '" & nso & "'," & _
" [Total Amount Received(cr)] = '" & tap & "'"
Однако * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *, и это может привести к прерыванию работы вашего приложения. пользователь предоставляет данные, которые включают зарезервированные символы, такие как разделители строк в одинарных кавычках.
В связи с этим вам следует рассмотреть возможность использования параметров, например:
With CurrentDb.CreateQueryDef("","update service_masterdata set [Service Aquired on] = @sao, [Next Service due on] = @nso, [Total Amount Received(cr)] = @tap")
.Parameters("@sao") = sao
.Parameters("@nso") = nso
.Parameters("@tap") = tap
.Execute
End With