|
|
|
| Есть таблица, в которую юзеру запрещена запись.
В VBA есть команда DoCmd.RunSQL, в которой прописан запрос на добавление в эту запрещённую таблицу "INSERT INTO... Ессно, чтобы запись выполнилась, запрос оканчивается описанием WITH OWNERACCESS OPTION.
Тем не менее работать не хочет - ругается "Run-time error 3107" - отсутствует разрешение на вставку данных.
Иду другим путём:
Создаю запрос в базе и вставляю туда ту-же самую SQL-строку, а в VBA прописываю:
DoCmd.OpenQuery "Запрос1".
Работает, сволочь, и ни про какие права не вспоминает!
Вот только это не решение проблемы по вполне понятным причинам - в том запросе должны фигурировать переменные и поля формы...
Выходит, не нравится ему RunSQL.
Народ, кто знает, как эту бяку обойти?
| |
|
| |
|
|
|
| попробуйте может
currentdb.execute | |
|
| |
|
|
|
| Это не бяка это нормальное поведение
WITH OWNERACCESS OPTION - это не значит выполнить с самыми крутыми правами, это значит выполнить с правами владельца
строка INSERT INTO создается текущим пользователем, т.е. он и является Owner'ом и выполняется с его правами.
передавайте в сохраненный запрос (созданный тем кто имеет права на доступ к таблице)нужные парамерты через коллекцию Parameters объекта QueryDef (Для DAO) или oбъекта Command для ADO | |
|
| |