powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Insert Recordset
6 сообщений из 6, страница 1 из 1
Insert Recordset
    #32494390
john doe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли вставить рекордсет в таблицу не перебирая отдельные стоблцы:

insert into FlatArrest_cen(.........) values(...." & rs(...) & ".....)

adp 2002
...
Рейтинг: 0 / 0
Insert Recordset
    #32494411
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А что мешает пройти циклом по rs.fields?
...
Рейтинг: 0 / 0
Insert Recordset
    #32494666
john doe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дело в том, что таблиц много, не хочется для каждой перечислять все поля.
может можно вставить строку как-нибудь типа: insert into table rs.fields, в цикле?
...
Рейтинг: 0 / 0
Insert Recordset
    #32494680
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Дарю функцию:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function AllFields(rs as dao.recordset)as string

dim s as string,f as dao.field

s= ""
for each f in rs.fields
if s>"  " then s=s & " ,"
s=s & f.name
next
AllFields=s

end function

И теперь можно писать:

insert into FlatArrest_cen(.........) values(" & AllFields(rs) & ")"
...
Рейтинг: 0 / 0
Insert Recordset
    #32494699
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Поправка. Надо ведь заботиться о правильном порядке полей. Поэтому надо иметь отдельно список их значений, а отдельно список имен. Та функция, которую я привел выше, дает список имен. Вот более правильный вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function AllFields(rs as dao.recordset,sWhat as string)as string

dim s as string,f as dao.field

s= ""
for each f in rs.fields
if s>"  " then s=s & " , "
select case sWhat
case " names ":s=s & f.name
case " values":s=s & cstr(f.value)
end select
next
AllFields=s

end function

И тогда:

insert into FlatArrest_cen(" & AllFields(rs,"names") & ") values(" & AllFields(rs,"values") & ")"

Но случай "values" я сделал пока только на случай числовых данных. Если данные другие, то функцию надо еще дорабатывать.
...
Рейтинг: 0 / 0
Insert Recordset
    #32494717
john doe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Insert Recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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