Существует множество способов запуска строк SQL в VBA. У каждого есть свои преимущества и недостатки. Наиболее распространенные из них:
DoCmd.RunSQL sql
Запускает SQL так же, как если бы вы выполняли запрос. Всплывающее окно будет появляться при добавлении, удалении или изменении записей. Вы можете использовать UDF и параметры формы
DoCmd.SetWarnings False
DoCmd.RunSQL sql
DoCmd.SetWarnings True
Отключает предупреждения, затем запускает SQL, как и в предыдущем случае, а затем снова устанавливает предупреждения.
CurrentDb.Execute sql
Выполняет SQL через соединение DAO с текущей базой данных. Вы не можете использовать UDF и параметры формы здесь. Предупреждения не отображаются. Он просто выполняет SQL.
CurrentProject.Connection.Execute sql
Выполняет SQL через соединение ADO с текущей базой данных. Очень похоже на соединение DAO, но есть небольшие различия. Например, вы можете выполнить операторы DDL, которые содержат тип данных Decimal
, и таким образом установить ограничения Check
, в то время как оба не допускаются ни одним из других способов.
Вы можете прочитать об использовании параметров этими различными способами здесь . Настоятельно рекомендуется, если вы собираетесь вставлять значения, которые не являются постоянными, чтобы избежать ошибок и внедрения SQL.