Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как организовать двойной цикл по таблице в VBA? / 15 сообщений из 15, страница 1 из 1
10.12.2018, 12:04
    #39745218
Сергей2987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Есть база, в которой есть таблица «Table». В ней есть неизменяемые текстовые поля и диапазон чисел (From, To), в поле Count уже посчитано кол-во (To-From+1). Нужно написать процедуру в VBA, которая разобьет каждую запись таблицы на кол-во равное Count, записав в поле Number все значения диапазона.
Понимаю, что тут 2 цикла: по всем записям таблицы и отдельно по записи от 1 до Count, но синтаксис VBA Access вообще не знаю, похожего примера на форумах не нашел.
Во вложении пример исходной и результирующей таблицы.

Буду очень благодарен за совет новичку
...
Рейтинг: 0 / 0
10.12.2018, 12:30
    #39745241
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Сергей2987Во вложении пример исходной и результирующей таблицы.


уж очень неудобно смотреть повернутую таблицу
...
Рейтинг: 0 / 0
10.12.2018, 12:31
    #39745243
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Сергей2987, запрос Digets найдёшь на этом форуме
...
Рейтинг: 0 / 0
10.12.2018, 12:33
    #39745247
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Сергей2987, поле To или Count избыточно, можно удалить из исходной таблицы
...
Рейтинг: 0 / 0
10.12.2018, 13:15
    #39745287
Сергей2987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Панург,
спасибо, крутой костыль через запросы, но Вы не подскажите как это реализовать именно через VBA?
...
Рейтинг: 0 / 0
10.12.2018, 13:35
    #39745306
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
ПанургСергей2987, запрос Digets найдёшь на этом форуме

...
Рейтинг: 0 / 0
10.12.2018, 13:56
    #39745320
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Сергей2987крутой костыль через запросыС каких пор запросы в Access стали костылями?
...
Рейтинг: 0 / 0
10.12.2018, 14:03
    #39745332
Сергей2987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Панург,
ну просто не стандартно, на мой взгляд. знаете, я сейчас написал, проверил и убедился, что это работает только, если Count не более 9. а у меня строки, где значение более 100, то есть должно быть 100 новых строк, а этот запрос выдает только 10. не знаете как исправить?
...
Рейтинг: 0 / 0
10.12.2018, 14:12
    #39745336
Сергей2987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Панург,
всё разобрался, Digit надо перемножать еще друг на друга...
...
Рейтинг: 0 / 0
10.12.2018, 14:20
    #39745345
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Сергей2987,
А Вы уверены что схема БД правильно разработана??
(вложить цикл в цикл это элементарно)
...
Рейтинг: 0 / 0
10.12.2018, 14:26
    #39745357
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
sdku(вложить цикл в цикл это элементарно)
А если я создам такую тему, не будете смеяться, а то я не совсем понимаю, что такое - Цикл, а уж
Цикл в Цыкле вааще непонятно.

Сможите объяснить, так, что бы даже я понял?
...
Рейтинг: 0 / 0
10.12.2018, 14:30
    #39745363
Сергей2987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
sdku,
схема БД разработана из уже имеющихся созданных таблиц. одна база их хранит, в другой я их подлинковал и считаю всякие значения. а не могли бы на этом примере написать цикл в цикле? на мои попытки ACCESS ругается, синтаксис разный бывает, как я понимаю (в зависимости от подключения)
...
Рейтинг: 0 / 0
10.12.2018, 14:35
    #39745370
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
Сергей2987, про строки заголовков не понял - их тоже копировать надо? - на всякий сделал копировать.
Код: vbnet
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.
39.
40.
Private sub  PrintStroks()
const Colum&=3
On error goto handle1
Dim rst as recordset, rzd as recordset, KolStrok&, i&, Lastcolumn$
set rst=CurrentDb.OpenRecordset("table", dbOpenSnapshot) ' откуда
If rst.absoluteposition=-1 then exit sub ' если ни одной записи в исходной таблице нет выходим
currentdb.execute "Delete from table1" ' очищаем результирующую таблицу
Set rzd = CurrentDb.OpenRecordset("table1", dbOpenDynaset) ' куда

with rst
.movefirst
  Lastcolumn= .fields(4)
  gosub gosub1 ' копируем заголовок
.movenext
  do until .eof
   for KolStrok=1 to !Count ' копируем нужное количество раз строку 
           Lastcolumn=KolStrok
           gosub gosub1
   next KolStrok
.movenext
Loop
end with
exithere:
rzd.close: rst.close
set rst=nothing: set rzd=nothing

exit sub
gosub1:
rzd.addnew 
for i=0 to Colum
 rzd.fields(i)=rst.fields(i)
next i
rzd.fields(i)=Lastcolumn
rzd.update
return
handle1:
' обработка ошибок
Debug.Print err.Number; Tab; err.Description
resume exithere
end sub


обработку ошибок уж сами
...
Рейтинг: 0 / 0
11.12.2018, 13:44
    #39745988
Сергей2987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
alecko,
огромное Вам спасибо, буду пробовать!
...
Рейтинг: 0 / 0
11.12.2018, 16:47
    #39746182
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать двойной цикл по таблице в VBA?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как организовать двойной цикл по таблице в VBA? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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