Страницы: 1
RSS
SQL запрос в базе данных ACCESS из PQ
 
Коллеги, добрый день!
Подскажите, пожалуйста, можно ли при создании через PQ запроса к БД Access встроить в него инструкцию SQL?

При создании запроса через PQ к SQL Server, к примеру, на этапе прописывания сервера есть специальное окно для ввода инструкции SQL. Когда же я выбираю файл с БД Access, такое окно отсутствует.
Заранее спасибо!  
 
Доброе время суток.
Три варианта подключения с запросом. Третий позволяет выполнять запросы с параметрами. Архив распаковать в папку c:\path, если нужно тестировать.
 
Андрей VG, спасибо вам большое! Ваши экспертные знания, как всегда, спасают!) Посмотрел все варианты - мне все подходят для решения текущей задачи) Но за вариативность - отдельное спасибо!
 
Подскажите, пожалуйста, как добавить значение из ячейки в инструкцию Sql ?
В PQ получилось, на удивление, легко!
В файле есть еще подключение Data без применения PQ. Вот как в него передать значение из ячейки или полностью sql запрос?
 
Доброе время суток.
Вариант
 
Андрей VG, здравствуйте!
В файле все работает! Спасибо!
Но пытаюсь сделать такой же запрос на другом листе, только у меня не активна кнопка Параметры..
Где-то что-то я упустил?
 
Цитата
Михаил Л написал:
Где-то что-то я упустил?
Вы создали, посредством Provider=MSDASQL (OleDb обёртка над Odbc полкючениями), OleDb подключение. А параметры, увы, работают только c Odbc подключениями. Почему не знаю, выяснилось ещё на Excel 2010.
 
И отсюда советы не сработали
 
Там нет доказательств. Я ковырял это тут
Поменяйте в примере строку подключения
Код
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$1;Extended Properties='Excel 12.0;HDR=YES';"
И убедитесь сами - Odbc - работает, Oledb - нет.
А вдруг нечто за пять лет изменилось? :)
 
Цитата
Андрей VG написал:
только c Odbc
Работает! Спасибо большое!
 
Еще бы условие добавить: если в ячейках значений нет, то выводить всю таблицу не фильтруя.
Сейчас  работает только со значением для Код: если значения для кода нет то выводит все значения, не фильтруя в поле Код. Если же не задавать значения для поля Year, то выводит ноль строк, а хотелось бы всю таблицу.
Посмотрев ютуб-видео про Case When Then Else End пробую как могу) и не получается. Ошибка синтаксиса, пропущен оператор. Что не так?
Код
SELECT *
FROM DataAuto WHERE 
    Case 
       when ?= NULL
       then  ((DataAuto.Код>?) ORDER BY Код DESC)
       else  ((DataAuto.Year=?) AND (DataAuto.Код>?) ORDER BY Код DESC)
    end
Изменено: Михаил Л - 15.08.2020 07:38:34
 
Михаил Л, я смотрю, вы пошли путём практика - блужданием в полной темноте. Может всё таки теорию чуть-чуть почитать?
Ordery By это statement - в переводе: инструкция оператор. Case When Then Else End - это выражение (по существу - функция в несколько странном представлении :) ), следовательно, оно не может возвращать инструкцию. Решение выносите Order By в конец запроса - как собственно и должно быть.
Далее, если мы про Access в нём нет такого выражения - используйте Switch, правда, у этой функции нет else. Если else актуально, то используйте вложенные IIF.
Далее, для сопоставление с Null используется Is или Is Not, но не =.
Собственно, основное. Какое отношение этот последний вопрос имеет к теме "SQL запрос в базе данных ACCESS из PQ" :qstn:   Давайте не нарушать правила.
Изменено: Андрей VG - 15.08.2020 09:34:58
 
Цитата
Андрей VG написал:
Может всё таки теорию чуть-чуть почитать?
Надо. Только времени нет.
Я бы делал все в PQ, только отличие в том что обновлять надо ПКМ-Обновить. А при варианте из поста #5 обновляется при изменении значения ячейки. Вот и пробую не зная.
Открою позже тему.
Спасибо  
Страницы: 1
Наверх