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

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


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

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

Сможите объяснить, так, что бы даже я понял?
...
Рейтинг: 0 / 0
как организовать двойной цикл по таблице в VBA?
    #39745363
Сергей2987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
схема БД разработана из уже имеющихся созданных таблиц. одна база их хранит, в другой я их подлинковал и считаю всякие значения. а не могли бы на этом примере написать цикл в цикле? на мои попытки ACCESS ругается, синтаксис разный бывает, как я понимаю (в зависимости от подключения)
...
Рейтинг: 0 / 0
как организовать двойной цикл по таблице в VBA?
    #39745370
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей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
как организовать двойной цикл по таблице в VBA?
    #39745988
Сергей2987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
огромное Вам спасибо, буду пробовать!
...
Рейтинг: 0 / 0
как организовать двойной цикл по таблице в VBA?
    #39746182
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как организовать двойной цикл по таблице в VBA?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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