LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Запрос ра...
 Тема: Запрос работает а CurrentDb.OpenRecordset нет
 
 15.06.2007 21:08:21
Malyav
7 сообщения


Тема: Запрос работает а CurrentDb.OpenRecordset нет
Пытаюсь выполнить инструкции
sSql = "INSERT INTO Адреса Values ('Name-2', '6-0-6-0', 'Data2', 'Port-4')"
CurrentDb.OpenRecordset sSql

выдает ошибку "Недопустимая операция".
Создаю (не программно) запрос с той же строкой SQL, запускаю - говорит - добавлю 1 запись и нормально добавляет.

Попробовал программно создать этот запрос
db.QueryDefs("Temp").Sql = sSql
потом запускаю его с помощью
CurrentDb.QueryDefs("Temp").Execute

опять нормально срабатывает и запись добавляется.
Таблица Адреса содержит 4 текстовых поля, по 20 знаков. Все поля индексированы (совпадения не допускаются).
Этот глюк произошел, когда я добавл в таблицу четвертое поле, когда было три CurrentDb.OpenRecordset sSql работал нормально.
Пробовал также INSERT INTO Адреса (Поле1, Поле2 и т.д.
Инструкция CurrentDb.OpenRecordset sSql привлекательна тем, что при добавлении записи она ругается, если находит совпадение с существующими записями. После этого юзер может исправить данные в форме и снова нажать кнопку "Сохранить".
CurrentDb.Execute stemp игнорирует такой запрос молча.



P.S. Запросы на добавление
Автор: Malyav от 23.04.2004 7:58:57 Источник ...
 15.06.2007 21:08:21
Malyav
7 сообщения


RE: Запрос работает а CurrentDb.OpenRecordset нет
Нашел такую фичу.
DoCmd.RunSQL sSql
Все вроде бы отлично. Запись добавляется, в случае совпадения записей выдается соответствующее сообщение.
Вот тут опять загвоздка. Там говорится, для пропуска ошибок нажмите да. Я думаю, читать этого никто не будет и сразу нажмут это да. И юзер врядли поймет, что запись не добавлена.
Как в этом случае сделать перенаправление GoTo на обработчик ошибок (выод сообщения что запись не добавлена и почему). Чтобы не выполнялось то, что идет в коде после
DoCmd.RunSQL sSql
и работает при успешном добавлении записи.


P.S. Запросы на добавление
Автор: Malyav от 23.04.2004 8:31:33 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Запрос ра...
ПоискПоиск  Список форумовСписок форумов  
right