|
|
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Что-то никак сообразить не могу... Есть форма. Там набор записей. Его отфильтровали. Полученный рекордсет надо использовать для иных целей (в частности, для экспорта в Эксель, но не только). Существует ли путь, чтобы текущий рекордсет, не совпадающий с Recordsource-ом формы запомнить в формате SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 13:22 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
А фильтруете как? Человек просто нажимает на поле ПКМ и выбирает фильтр? Трудная задача - не для слабонервных (ИМХО), особливо, если соурс навороченный :( Как вариант: Пробежаться по рекордсету, все запихнуть во "временную" таблицу и уже к ней обращаться (к таблице) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 13:59 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
зависит от задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 14:26 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Высоцкий: Открыли все- но мне туда не надо. Не могу себе представить, зачем это может понадобиться. Набор записей выгрузить в табличку а потом с ней упражняться для "Экспорта и не только"- это я понимаю. А на основании recordset генерировать SQL- IMHO бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 14:56 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
авторНе могу себе представить, зачем это может понадобиться. Ну, например, использовать для Recordsorce или Rowsource другого объекта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 15:04 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
авторНу, например, использовать для Recordsorce или Rowsource другого объекта... В таких случаях рисуют кнопочки (галочки, списочки) на форме для применения фильтров и уже по их значениям генерят Where ИМХО - конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 15:08 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
А может попробовать так для другого объекта (формы): Dim Rs as recordset: Set rs = Me.RecordsetClone Set Forms!AtherForm.RecordSet = Rs Or Set Forms!AtherForm.RecordSet = Me.RecordsetClone ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 15:23 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Где-то было у меня такое... Сейчас гляну. Вот оно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. А используется примерно так: Set rs = Me.RecordsetClone If Me.OrderByOn = True Then rs.Sort = DelTablesNames(Me.OrderBy) или rs.Open "select * from mytable " & _ IIf(Len(Nz(Me.ServerFilter)) > 0, " where " & DelTablesNames(Me.ServerFilter), ""), cn и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 15:32 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
ЗЫ. Не помню, зачем надо чистить имена таблиц, но, наверное надо, раз сделано. ЗЫЫ. Это в ADP работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 15:35 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
2 Paparome: Соурс, действительно, навороченный. Фильтр через стандартные кнопки или контекстное меню - "фильтр для", "фильтр по выделенному", "исключить выделенное". В идеале хочу и расширенный подключить, но пока не до жиру. Вариант с "выбросом" во временную таблицу выглядит вполне приемлимым, хотя, конечно, обидно этим заниматься, когда набор записей уже есть перед глазами. Задачи разные. Одна простая: щелкнув как следует по любой записи в отфильтрованной табличной форме, открыть простую форму с возможностью перебора только отфильтрованных записей. Тут ясно: синхронизация рекордсета: Set ПростаяФорма.recordset = ТабличнаяФорма.Recordset. Вторая задача сложнее (с ней, собственно, пока и бьюсь): экспорт отфильтрованных записей в шаблоны Эксель и/или Ворд, причем не целиком, а только выбранные пользователем поля и с пользовательскими же алиасами. Механизм работает, но пока только для всего рекордсурса табличной формы. А вот если пользователь его отфильтровал вручную, то не совсем понятно. Будут и другие задачи, но пока еще не точно понятно какие. 2 Shark: Возможно, и бред. Но пока не пришло в голову ничего проще. "Выброс" во внешнюю таблицу - это понятно, но требуемый набор полей не аналогичен тем, которые есть в рекордсете. Пользователь их сам выбирает для экспорта. 2 Geo: У меня mdb, но подход, кажется, понятен. Не самый простой, но вполне эффективный вариант. Попробую. 2 Rivkin Dmitry и Serge Gavrilov: Не проходит по описанным выше причинам. 2 All: Большое спасибо за внимание к проблеме! Буду париться дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 16:28 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
>Требуемый набор полей не аналогичен 1) Лишние не мешают 2) Если не хватает- добавь. Никто не заставляет делать табличку шириной с твой рекордсет. Сделай ее шире и потом посчитай недостающее. К тому же по моему неправильно сто раз пересчитывать одно и то же. Посчитал один раз в табличку сложил- потом смотри хоть засмотрись >Буду париться дальше Нет, ну если хочется попариться, тогда конечно:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 09:35 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Можно пройтись по RecordsetClone формы и собрать значения ключей в конструкцию IN (Key1,Key2,....KeyN), а затем использовать ее в условии запроса. Для экспорта в Excel лучше использовать метод CopyFromRecordset библиотеки объектов Excel-я. Он позволяет вставить данные в конкретное место конкретной страницы существующего файла. Другими методами можно ваще полностью оформить лист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 10:07 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
авторМожно пройтись по RecordsetClone формы и собрать значения ключей в конструкцию IN (Key1,Key2,....KeyN), а затем использовать ее в условии запроса не плохо :) если ключ из одного поля :) А так - можно просто во временную не все поля скидывать, а только ключевые :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 10:21 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
автор2 Rivkin Dmitry и Serge Gavrilov: Не проходит по описанным выше причинам. Я и непредлагал ничего, я отвечал Shark-у на вопрос, зачем это может понадобиться. Сам я в подобной ситуации создавал таблицы во временном mdb файле (чтобы база не пухла), т.к. в Access 97 у объектов нет свойства Recordset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 10:24 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 10:35 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Таблица1 --> Таблиц WHERE ((Таблица1.dd>5)) Select * From Таблица1 Where 1=1 --> Select * From Таблица1 Where 1 WHERE ((Таблица1.dd>5)) ? ЗЫ: И это я еще примеры с GROUP BY и ORDER BY вам не показал :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 10:52 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
ЗЫ: это было для АлексейЕ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 10:52 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
Я лишь идею подбросил, а автор вопроса пусть все ситуации обрабатывает сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 11:02 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
АлексейЕЯ лишь идею подбросил, а автор вопроса пусть все ситуации обрабатывает сам. Ох%еет, пардон :( (ИМХО) В запросе могут быть еще и подзапросы, и многие с ордерами и группировками :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 11:07 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
paparome Я не утверждал, что мое предложение универсальное и для всех случаев жизни. Я лишь дал наметки. По этому автору вопроса и решать, подойдет оно ему в его ситуации или нет. Затевать спор не вижу смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 11:16 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
АлексейЕpaparome Я не утверждал, что мое предложение универсальное и для всех случаев жизни. Я лишь дал наметки. По этому автору вопроса и решать, подойдет оно ему в его ситуации или нет. Затевать спор не вижу смысла. Все - молчу, молчу Был не прав - каюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 11:19 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
авторСам я в подобной ситуации создавал таблицы во временном mdb файле (чтобы база не пухла), т.к. в Access 97 у объектов нет свойства Recordset Я тоже авторЯ и непредлагал ничего, я отвечал Shark-у на вопрос, зачем это может понадобиться. Это был не вопрос, а утверждение. Ты ничего не объяснил, так как дальше непонятно, ЗАЧЕМ заполнять Recordsorce или Rowsource другого объекта..., если можно чудесно воспользоваться временными таблицами( что мы с тобой и делаем:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 11:20 |
|
||
|
Как бы получить SQL-запрос на основе текущего рекордсета формы?
|
|||
|---|---|---|---|
|
#18+
[quot автор]Это был не вопрос, а утверждение. Ты ничего не объяснил, так как дальше непонятно, ЗАЧЕМ заполнять Recordsorce или Rowsource другого объекта..., если можно чудесно воспользоваться временными таблицами( что мы с тобой и делаем:-)[/quote] По поводу ЗАЧЕМ, бывает достаточно одного - ХОЧЕТСЯ ТАК. Ведь работу с таблицами надо организовывать, а так написал в RecordSource инструкцию SQL и все, разве плохое желание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32557685&tid=1673931]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 536ms |

| 0 / 0 |
