Циклы в vba

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
alehander
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 08.11.2006 (Ср) 16:09
Откуда: Vologda region

Циклы в vba

Сообщение alehander » 08.11.2006 (Ср) 16:28

Доброго времени суток. Господа, прошу помощи.
есть таблица bilet. поля id_predm (integer),n_bil (integer), id_bil (counter).
есть код
For a=1 to b
DoCmd.runsql ("insert into table (id_predm) SELECT predm.id FROM predm WHERE [predm].[id]=[Forms]![Форма1]![predm].value")
next a
вопрос как переменную а занести в поле n_bil (integer) одновременно с конструкцией insert into?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.11.2006 (Ср) 21:09

Код: Выделить всё
DoCmd.runsql ("insert into table (id_predm, n_bil) SELECT predm.id, " & a & " FROM predm WHERE [predm].[id]=[Forms]![Форма1]![predm].value")
Лучший способ понять что-то самому — объяснить это другому.

alehander
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 08.11.2006 (Ср) 16:09
Откуда: Vologda region

Сообщение alehander » 10.11.2006 (Пт) 17:21

1 таблица bilet. поля id_predm (integer),n_bileta (integer), id_bil (counter).
2 таблица voprbil. поля id_bileta (integer),id_vopr (integer),nomer_voprosa (integer).
между bilet и voprbil связь 1 ко многим по полю id_bil.

b=[Forms]![Форма1]![kol_bil]'количество билетов
v=[Forms]![Форма1]![kol_vopr]'количество вопросов

For a=1 to b
DoCmd.runsql ("insert into bilet (id_predm,nomer_bileta) SELECT predm.id, "&a&" FROM predm WHERE [predm].[id]=[Forms]![Форма1]![predm].value")


For n=1 to v
DoCmd.runsql ("insert into voprbil (id_bileta,nomer_voprosa) SELECT bilet.id_bileta, "&n&" FROM bilet ")
next n
next a

вопрос
по идее в таблице билет создаётся запись, далее в эту запись добавляется столько строчек сколько идёт в цикле
For n=1 to v
DoCmd.runsql ("insert into voprbil (id_bileta,nomer_voprosa) SELECT bilet.id_bileta, "&n&" FROM bilet ")
next n

но в реальности если b=10, v=2
билет заполняется нормально,но в таблице voprbil в первой записи id_bileta соответствует 20 записей id_vopr, во второй записи id_bileta - 18 записей id_vopr и т.д. И только в последней записи всё идёт как необходимо 2 записи

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 13.11.2006 (Пн) 10:22

Код: Выделить всё
b=[Forms]![Форма1]![kol_bil]'количество билетов
v=[Forms]![Форма1]![kol_vopr]'количество вопросов

For a=1 to b
DoCmd.runsql ("insert into bilet (id_predm,nomer_bileta) SELECT predm.id, "&a&" FROM predm WHERE [predm].[id]=[Forms]![Форма1]![predm].value")


For n=1 to v
DoCmd.runsql ("insert into voprbil (id_bileta,nomer_voprosa) SELECT bilet.id_bileta, "&n&" FROM bilet WHERE [predm].[id]=[Forms]![Форма1]![predm].value AND nomer_bileta = " & a)
next n

next a
I Have Nine Lives You Have One Only
THINK!


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 3

    TopList