|
|
|
| Есть запрос на добавление который следует выполнить в VBA. Вот его код
INSERT INTO PlaceCodeTemp ( PlaceArm, Id, CountryPlace )
SELECT IIf(PlaceCode.PlaceArm='',"Չորոշված",PlaceCode.PlaceArm) AS Выражение1, Min(PlaceCode.Id) AS Id, IIf(PlaceCode.ErkCode=0,IIf(PlaceCode.id In (0.1),"Հայաստան",IIf(PlaceCode.id=2,"Արտասահման","Չորոշված")),IIf(PlaceCode.ErkCode=374,"Հայաստան",IIf(IsNull(PlaceCode.ErkCode),"Չորոշված","Արտասահման"))) AS CountryPlace
FROM PlaceCode
GROUP BY PlaceCode.PlaceArm, PlaceCode.ErkCode;
|
А вот код VBA
SQL = CurrentDb.QueryDefs("qaPlaceCodeTemp").SQL
DoCmd.RunSQL SQL
CurrentDb.Execute "qaPlaceCodeTemp"
CurrentDb.Execute SQL
|
В нём запрос продублирован три раза. Выполняется только первый... остальные выдают ошибку
Run-time error 3122: You tried to execute a query that does not include the specified expression "*" as part of the aggregate function
|
нижеследующем выражении
IIf(PlaceCode.ErkCode=0,IIf(PlaceCode.id In (0.1),"Հայաստան",IIf(PlaceCode.id=2,"Արտասահման","Չորոշված")),IIf(PlaceCode.ErkCode=374,"Հայաստան",IIf(IsNull(PlaceCode.ErkCode),"Չորոշված","Արտասահման"))) AS CountryPlace
|
Отсюда два вопроса:
1. Почему Docmd выполняется а Execute нет?
2. Как сделать так чтобы Docmd выполнялся молча, без выдачи окна сообщения? | |
|
| |
|
|
|
| 2
DoCmd.SetWarnings False 'отключаем сообщения
DoCmd.RunSQL "DELETE ............................................"
DoCmd.SetWarnings True 'включаем сообщения
совсем отключать сообщения не стоит
принцип такой: отключил - запустил запрос (группу запросов) - включил
иначе нужные сообщения тоже отключены будут | |
|
| |