|
|
|
обработка Recordset'ов (ADO) в VBA
|
|||
|---|---|---|---|
|
#18+
Оба Recordset подключены одним соединением, к одной БД, только разные выборки делаются у запросов. поле RAZMER появляется ручками, через запрос, т.е. так: Код: plaintext далее нужно сравнить два сета, объеденить часть данных из 1го в строку и вставить в поле RAZMER во втором: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. при записи в Код: plaintext воспрос: можно ли как-то дописывать в этот рекордсет данные или лучше использовать что-то другое для этого? есть ли какие-нибудь "виртуальные рекордсеты" что ли.. чтобы туда все сбросить и так же обрабатывать? таблицу саму с исходными данными редактировать не нужно, т.е. из нее просто данные выбираются для последующей обработки. Заранее спасибо.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 18:08:39 |
|
||
|
обработка Recordset'ов (ADO) в VBA
|
|||
|---|---|---|---|
|
#18+
Евгений_АнатольевичОба Recordset подключены одним соединением, к одной БД,Тогда лучше и надежнее объединить оба запроса в один. Евгений_Анатольевичвоспрос: можно ли как-то дописывать в этот рекордсет данные или лучше использовать что-то другое для этого? есть ли какие-нибудь "виртуальные рекордсеты" что ли.. чтобы туда все сбросить и так же обрабатывать?В принципе, есть и виртуальные рекордсеты. Но проще всего 1) соединить два запроса в один; 2) работать с массивами; 3) перезапускать второй запрос с параметрами по мере необходимости; Выбирай на вкус. Записывать данные в рекордсет не стоит никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 18:42:17 |
|
||
|
обработка Recordset'ов (ADO) в VBA
|
|||
|---|---|---|---|
|
#18+
White OwlТогда лучше и надежнее объединить оба запроса в один. Если честно - понял, что подразумеваете под этим :) могу подробнее пояснить задачу :) Есть файл в котором хранятся данные, избыточное количество. т.е. например два вида номенклатуры, оди из которых расширение другого. поэтому одним sql-запросом получаю обобщенный набор строк, потом из второго заапроса-расширенного я вытаскиваю из разных строк данные, объединяю в строку и должен записать в соответствующую строку из первого запроса, в новый столбец. надеюсь более менее понятно описал.. %) White Owl В принципе, есть и виртуальные рекордсеты. Но проще всего 1) соединить два запроса в один; 2) работать с массивами; 3) перезапускать второй запрос с параметрами по мере необходимости; Выбирай на вкус. Записывать данные в рекордсет не стоит никогда. 1. - видимо в моем случае неприменимо. 2. - а можно поподробнее - в каком виде? т.е. какие объекты использовать и т.п. :) дальше я по мануалам разберусь... 3. - вообще не понял, если честно.. какими параметрами, если мне надо делать выборку построчную? т.е. от курсора мне никак не убежать, но лучше уж делать все с исходными массивами данных, дабы не загружать процессор, чем потом обрабатывать в экселе построчно.. просто для 7 и 17 тысяч записей в каждой таблице соотвественно, уже проверял.. минут 15 на современной машине делает.. правда на виртуалке, но там памяти выделено нормально и на основной машине нет никаких задач ресурсоемких при этом.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 18:55:26 |
|
||
|
обработка Recordset'ов (ADO) в VBA
|
|||
|---|---|---|---|
|
#18+
*не понял, что подразумевается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 18:56:06 |
|
||
|
обработка Recordset'ов (ADO) в VBA
|
|||
|---|---|---|---|
|
#18+
Евгений_АнатольевичЕсть файл в котором хранятся данные, избыточное количество. т.е. например два вида номенклатуры, оди из которых расширение другого. поэтому одним sql-запросом получаю обобщенный набор строк, потом из второго заапроса-расширенного я вытаскиваю из разных строк данные, объединяю в строку и должен записать в соответствующую строку из первого запроса, в новый столбец. надеюсь более менее понятно описал.. %)ээээ.... чего-чего-чего? Примеры файлов в студию. И собственно говоря, какие именно "файлы" имеются в виду? База данных? Текстовые файлы? DBF? Евгений_Анатольевич1. - видимо в моем случае неприменимо.Может быть и применимо, надо только сначала понять задачу. Евгений_Анатольевич2. - а можно поподробнее - в каком виде? т.е. какие объекты использовать и т.п. :) дальше я по мануалам разберусь...Я не очень понял что надо в итоге получить, но в общем, можно либо создать массив достаточного размера в памяти, скопировать в него первый рекордсет, потом изменять ячейку массива на основе данных из второго рекордсета. Вместо массива можно использовать коллекцию (объект Collection), тогда не нужно будет заранее знать сколько строк в первом рекордсете, но будет чуть медленнее чем с массивом. Евгений_Анатольевич3. - вообще не понял, если честно.. какими параметрами, если мне надо делать выборку построчную?Ну что-то в духе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В конце концов, можно после обработки строки записывать ее сразу на Экселевский лист или куда там надо ее сохранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2008, 19:27:20 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35655333&tid=2180137]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
204ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 499ms |

| 0 / 0 |
