Никогда не рекомендуется использовать DoCmd.RunSQL
, поскольку он генерирует приглашение (которое необходимо отключить, если оно вам не нужно), и оно завершает обновления, даже если возникают ошибки, и не сообщает о ошибки. Гораздо лучше заменить его на функцию, которая выполняет тот же SQL:
Public Function SQLRun(strSQL As String) As Boolean
On Error GoTo errHandler
CurrentDB.Execute strSQL, dbFailOnError
SQLRun= True
exitRoutine:
Exit Function
errHandler:
MsgBox err.Number & ": " & err.Description, vbExclamation, "Error in SQLRun()"
Resume exitRoutine
End Function
Как только вы разместите это в общедоступном модуле, вы можете легко выполнить глобальный поиск и заменить на DoCmd.RunSQL
, чтобы заменить его на SQLRun
.
РЕДАКТИРОВАТЬ: Другая версия этой функции, которая возвращает количество затронутых записей: здесь .