Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как использовать Recordset? / 10 сообщений из 10, страница 1 из 1
02.11.2017, 03:44
    #39546466
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
Допустим, я сделал такой запрос к данным:
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset(сложный_запрос)



Теперь я могу сделать цикл по записям, чтобы их прочесть
Но я не хочу цикл. Я хочу использовать данные из рекордсета для обновления другой таблицы.
Например:
Код: vbnet
1.
UPDATE Товары LEFT JOIN [rst] ON Товары.код = [rst].код_товара Set...



Так можно?
...
Рейтинг: 0 / 0
02.11.2017, 04:19
    #39546470
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
Настаев, нет
...
Рейтинг: 0 / 0
02.11.2017, 04:21
    #39546472
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
\\\\,

Ясно, спасибо
...
Рейтинг: 0 / 0
02.11.2017, 04:26
    #39546473
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
Вопрос в догонку

Если при подключении recordseta используются формулы, будут ли они вычисляться снова и снова, когда я будут просить из него данные?
Например:
Код: vbnet
1.
цена = rst!цена
...
Рейтинг: 0 / 0
02.11.2017, 04:35
    #39546476
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
Настаев, ИМХО, нет, не будут, ты же уже получил набор записей. Для верности сделай его статичным.

Для увеличения скорости чтения записи данных используй не коллекцию полей ( Fields ) рекордсета, а не документированный метод Collect , правда по названиям обращаться не получится, только по номеру
Код: vbnet
1.
2.
3.
...
rst1.Collect(0)=rst2.Collect(0)
...
...
Рейтинг: 0 / 0
02.11.2017, 05:07
    #39546481
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
\\\\,

Спасибо, я попробую. Думаю, это мне пригодится
...
Рейтинг: 0 / 0
02.11.2017, 18:21
    #39546926
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
НастаевДопустим, я сделал такой запрос к данным:
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset(сложный_запрос)



Теперь я могу сделать цикл по записям, чтобы их прочесть
Но я не хочу цикл. Я хочу использовать данные из рекордсета для обновления другой таблицы.
Например:
Код: vbnet
1.
UPDATE Товары LEFT JOIN [rst] ON Товары.код = [rst].код_товара Set...



Так можно?
можно генерить sql и результат rst добавлять как переменную.
...
Рейтинг: 0 / 0
02.11.2017, 22:33
    #39547047
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
Настаев, А что мешает писать сразу :

StrSQL = "INSERT INTO aRaces SELECT races.* FROM Races WHERE keyraces=" & key

baza.Execute StrSQL
...
Рейтинг: 0 / 0
03.11.2017, 03:06
    #39547101
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
JavaStudentНастаев, А что мешает писать сразу :

StrSQL = "INSERT INTO aRaces SELECT races.* FROM Races WHERE keyraces=" & key

baza.Execute StrSQL

мешает то, что я не могу выполнять команду baza.execute в фоновом режиме. А получить рекордсет могу. Но в рекордсете можно делать только выборку. Думаю, было бы хорошо, если бы данные из рекордсета можно было прикрутить как какому-то запросу.
...
Рейтинг: 0 / 0
03.11.2017, 13:31
    #39547392
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать Recordset?
\\\\Для увеличения скорости чтения записи данных используй не коллекцию полей ( Fields ) рекордсета, а не документированный метод Collect , правда по названиям обращаться не получится, только по номеру
Код: vbnet
1.
2.
3.
...
rst1.Collect(0)=rst2.Collect(0)
...


Спасибо, я так и сделал. Всё работает. Только уточню, что нумерация полей начинается с нуля (может, кому-то пригодится)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как использовать Recordset? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]