|
|
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
В Excel (2003) SQL запросом подтягиваю данные. Как только в запрос добавляю переменные, в Excel получаю пустоту(( Причем запрос замечательно выполняется в Query! Получение данных через сводную таблицу выдает ошибку... В чем может быть дело? Неужели в Экселе нельзя использовать запросы с переменными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:17:20 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Дело может быть в первую очередь в самом запросе, в данных, в версиях программ и т.д.;-) Запрос в студию! KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:21:10 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. на элементарном примере... возвращает пустоту и не сохраняет текст запроса, хотя установлена опция сохранения определения запроса. Если переменные заменить на их значения - всё ок! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:36:36 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
могу и ошибаться, но в запросах нельзя определять переменные их можно только передавать в таком случае переменные описываются символом "знак вопроса" Код: plaintext 1. 2. 3. вроде так I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 17:09:35 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Не представляю, как я передам переменные в порядке их следования в импорте внешних данных Excel (2003)).... Как понимаю ответ на мой вопрос: "Неужели в Экселе нельзя использовать запросы с переменными?" - НЕТ!((( Жаль! Через VBA обойду!) Спасибо всем за участие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 17:40:05 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 09:19:25 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
big-duke Вот White Owl очень доходчиво объяснил. Спасибо за ответ! Очень полезная информация... Только вопрос был не совсем в этом... Я думаю, не секрет - для чего нужны переменные? Запрос достаточно большой... много параметров, которые ни раз повторяются в тексте запроса, и если все значения параметров заменить на знак вопроса... этот вариант не применим - один и тот же параметр придется вводить много раз!(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 11:40:41 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Запрос к чему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 12:12:45 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Nitrolis big-duke Вот White Owl очень доходчиво объяснил. Спасибо за ответ! Очень полезная информация... Только вопрос был не совсем в этом... Я думаю, не секрет - для чего нужны переменные? Запрос достаточно большой... много параметров, которые ни раз повторяются в тексте запроса, и если все значения параметров заменить на знак вопроса... этот вариант не применим - один и тот же параметр придется вводить много раз!(( так если привязать параметры к ячейкам, то ничего страшного не будет, просто несколько "знаков вопросов", будут ссылаться на одну и туже ячейку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 13:05:23 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Всё неудобство сводится к тому, что исходный текст запроса НАДО РЕДАКТИРОВАТЬ!!! Но хотелось, чтобы это свелось к замене нескольких переменных в самом запросе... Через VBA всё понятно... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 13:39:14 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
На мой вопрос ответите ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 15:14:53 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
FНа мой вопрос ответите ? Сори! Вас интересует источник данных? Если я правильно понял вопрос, овечаю: запрос к БД, которая крутится на SQL-Server 2000 и управляется с помощью Access.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 17:12:16 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
В таком случае способов получить данные с сервера очень много. Если, конечно, вам нужно просто прочитать данные с сервера. Формируйте текст запроса динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 17:23:32 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
FФормируйте текст запроса динамически. Можно чуть подробнее?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 18:08:35 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Nitrolis... но при изменениях текста запроса, приходится все переменные вклячивать заново, потому как Эксель не позволяет использовать переменные внутри самого запроса и возвращает пустоту((Ничего не понимаю. Почему вдруг Эксель не позволяет использовать переменные внутри запроса? Какие переменные? Что ты такое пытаешься сделать? Один вариант запроса с переменными ты только что сам показал - формируешь строку или массив строк с запросом в котором подставляешь параметры запроса из VBA-переменных. Второй вариант я тебе описывал - заменить константы в запросе на вопросительные знаки и привязать их потом к ячейкам Экселя. В этом случае VBA уже вообще не нужно будет. Или ты вот в этом макросе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 18:12:36 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 18:45:46 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Еще раз хочу поблагодарить за помощь и предложенные варианты! Еще раз повторюсь: вставить в текст запроса переменные через VBA - не проблема. И ответ на свой вопрос с помощью всех участвующих я получил - Excel не позволяет использовать переменные в тексте запроса (см. мой второй топик)... VBA - позволяет))) Постараюсь быть понятнее: частный случай - есть несколько запросов, у которых параметры одинаковы, количество и состав запросов может меняться, да и сами запросы могут меняться, но поля у всех одинаковы. Клею их влоб - Union ALL (текст запроса очень большой) и Ctr+C - Ctr+V напрямую в сводную таблицу Excel, где выборка >200000 строк превращается в человеческий вид быстро и результат не заставляет ждать. С использованием переменных непосредственно в самом запросе остается подставить параметры и объеденить запросы в нужном порядке... НО! Но с переменными пусто((( Конечно вчера обошел через VBA... сделал набор массивов с текстами запросов и с & переменная &)), которые объединяю в нужном порядке в единый массив (можно даже красиво через форму оформить)) и в сводную таблицу... но думал обойдусь Ctr+C - Ctr-V.. Спасибо всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 19:56:23 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
NitrolisИ ответ на свой вопрос с помощью всех участвующих я получил - Excel не позволяет использовать переменные в тексте запроса (см. мой второй топик)... Это неверный ответ. Эксель позволяет использовать переменные параметры в тексте запроса. Те самые вопросительные знаки. NitrolisVBA - позволяет)))А VBA позволяет не только переменные параметры использовать, но и весь запрос может на лету конструировать и представлять переменные параметры константами. Как раз это (превращение переменных в константы) ты и делаешь в последнем показаном макросе. NitrolisПостараюсь быть понятнее: .... С использованием переменных непосредственно в самом запросе остается подставить параметры и объеденить запросы в нужном порядке... НО! Но с переменными пусто(((Понятнее быть не получилось. Что такое переменные в твоем понимании? То что ты делаешь в запросе Код: plaintext 1. 2. 3. Если да, то вынужден тебя огорчить, эти переменные создаются на самом серевере базы данных и принадлежат ему. Эксель выступает в роли клиента БД и доступа до этих переменных не имеет в принципе. Но можно объявить sql переменные в начале блочного запроса и потом использовать их вот например так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 23:29:34 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
White Owl Что такое переменные в твоем понимании? То что ты делаешь в запросе Код: plaintext 1. 2. 3. Если да, то вынужден тебя огорчить, эти переменные создаются на самом серевере базы данных и принадлежат ему. Эксель выступает в роли клиента БД и доступа до этих переменных не имеет в принципе. Спасибо за разъяснение. Буду знать! Но не понятно - как вы собрались использовать sql переменные в нижеследующем коде???? Очевидно противоречие! White Owl Но можно объявить sql переменные в начале блочного запроса и потом использовать их вот например так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вернулись к исходному вопросу! КОД ВЕРНУЛ В EXCEL ПУСТОТУ!(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2007, 10:53:34 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
NitrolisНо не понятно - как вы собрались использовать sql переменные в нижеследующем коде???? Очевидно противоречие!Никакого противоречия. Если присмотрется повнимательнее, я создаю не просто запрос, а пакет. И отсылаю в базу данных пакет в котором уже нету vba-шных переменных. Этот vba код по существу сконструирует запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. NitrolisВернулись к исходному вопросу! КОД ВЕРНУЛ В EXCEL ПУСТОТУ!((То что запрос возвращает пустоту это в 99% случаев ошибка в самом запросе. Забудь на время про Эксель, добейся чтобы твой гигантский и явно излишне усложненный запрос вообще вернул какие-то осмысленные данные. Потом скопируй его в Экселевский макрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2007, 17:57:34 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
White OwlТо что запрос возвращает пустоту это в 99% случаев ошибка в самом запросе. Забудь на время про Эксель, добейся чтобы твой гигантский и явно излишне усложненный запрос вообще вернул какие-то осмысленные данные. Потом скопируй его в Экселевский макрос. Это уже откровенная демагогия! Запрос который рассмотрен в этой теме, РЕАЛЬНЫЙ ПОЛНОСТЬЮ РАБОЧИЙ ЗАПРОС и огромные запросы тут ни при чем! На примере этого запроса я и поднял эту тему. Понятное дело, что прежде чем носом землю рыть в огромном запросе, который отлично выполняется в Query (при добавлении текста запроса в Excel) и в Query Analyzer, проще было убедиться на элементарном примере. Итак, данные получены: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. пусто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 12:36:03 |
|
||
|
Запрос в Excel возвращает пустоту((
|
|||
|---|---|---|---|
|
#18+
Nitrolis White OwlТо что запрос возвращает пустоту это в 99% случаев ошибка в самом запросе. Забудь на время про Эксель, добейся чтобы твой гигантский и явно излишне усложненный запрос вообще вернул какие-то осмысленные данные. Потом скопируй его в Экселевский макрос. Это уже откровенная демагогия! Нет, это к демагогии не имеет отношения. NitrolisЗапрос который рассмотрен в этой теме, РЕАЛЬНЫЙ ПОЛНОСТЬЮ РАБОЧИЙ ЗАПРОС и огромные запросы тут ни при чем!То есть ты считаешь, что запрос Код: plaintext Потом почитай учебник по ТВОЕМУ серверу, посмотри как там делаются пакеты запросов и блочные запросы. И не забывай применять вон ту инструкцию которую ты так опрометчиво обозвал демагогией. Она тебя спасет... Если ты ею воспользуешься конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 18:21:42 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34762511&tid=2182354]: |
0ms |
get settings: |
5ms |
get forum list: |
7ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 468ms |

| 0 / 0 |
