|
|
|
| Что-то заклинило...
Две таблицы: AktTabelle и AktBtn. Количество строк различное и никаких общих совпадений.
Задача: Встать на первые строки в обоих таблицах и прочесть значения из одного из полей в каждой таблице, после чего перейти на следующую строку в обоих таблицах. И так до тех пор, пока в первой таблице не дойдем до конца, после чего таблицы закрыть.
В чем ошибка????
With AktBtn
.MoveFirst
Do While Not .EOF
ArtStr = !ARTNR
AktTabelle.MoveFirst
Do While Not AktBtn.EOF
AktNr = AktBtn!SchaltflaecheNr
MsgBox AktNr & " " & ArtStr
AktTabelle.MoveNext
Loop
MsgBox ArtStr & " " & AktNr
.MoveNext
Loop
.Close
AktTabelle.Close
End With | |
|
| |
|
|
|
| получается пока внутренний цикл не отработает к внешнему не вернёмся и так много раз......
нужно всё в одном цикле делать, тока каждый раз переходить на новую запись во второй таблице - AktTabelle.MoveNext
================================
| |
|
| |
|
|
|
| Один цикл и есть, но одна таблица движется, а вторая стоит на первой строке вмертвую. Где напртачил-не пойму. Весь код всего-то несколько строк... Просто чертовщина какая-то... | |
|
| |
|
|
|
| В модуле и стоит AktTabelle.MoveNext, я просто здесь забыл поставить | |
|
| |
|
|
|
| Два цикла-два
один в теле другого
Do While Not .EOF
ArtStr = !ARTNR
AktTabelle.MoveFirst
Do While Not AktBtn.EOF
AktTabelle.MoveNext
Loop
.MoveNext
Loop
|
| |
|
| |
|
|
|
| А у меня вот
Do While Not .EOF
ArtStr = !ARTNR
AktTabelle.MoveFirst
Do While Not AktBtn.EOF
AktNr = AktBtn!SchaltflaecheNr
MsgBox AktNr & " " & ArtStr
AktTabelle.MoveNext
Loop
MsgBox ArtStr & " " & AktNr
.MoveNext | |
|
| |
|
|
|
| Это я твой код, только урезаный показываю - присмотрись
цикл в цикле | |
|
| |
|
|
|
| И вот ещё
Ты сам просиш - каждый раз вставать на первую запись | |
|
| |
|
|
|
| Сделай для начала один цикл - по одной своей таблице
Када всё нормально заработает.....посмотришь, а что же дальше | |
|
| |
|
|
|
|
AktTabelle.MoveFirst
With AktBtn
.MoveFirst
for f=1 to .recordcount-1
if .EOF= false then
ArtStr = !ARTNR
тут надо будет сбегать в другую таблицу но там без цикла по таблице
MsgBox .ArtStr & " " & AktTabelle.AktNr
AktTabelle.MoveNext
.MoveNext
end if
next f
.Close
End With
|
положил бы ты таблицы сюда, а то как то не наглядно | |
|
| |
|
|
|
| И как сбегать без цикла. Я опять становлюсь на первую строку и стою там до опупения | |
|
| |
|
|
|
| Спасибо, ошибку понял-все получилось! | |
|
| |
|
|
|
|
| По этому коду движение происходит только по второй таблице, а первая, зараза, намертво стоит на первой строке.
Я таких циклов уже миллион раз писал, а сейчас переклинило. Видимо долго не занимался-был полутарогодовой перерыв, а сейчас жена потребовала помочь ей...
With AktBtn
.MoveFirst
Do While Not .EOF
ArtStr = !SchaltflaecheNr
AktTabelle.MoveFirst
Do While Not AktTabelle.EOF
AktNr = AktTabelle!artnr
MsgBox AktNr & " " & ArtStr
AktTabelle.MoveNext
Loop
MsgBox ArtStr & " " & AktNr
.MoveNext
Loop
End With | |
|
| |
|
|
|
|
AktTabelle.MoveFirst
AktBtn.MoveFirst
for f=1 to .recordcount-1
if AktBtn.EOF= false then
MsgBox AktBtn!ARTNR & " " & AktTabelle!AktNr
AktTabelle.MoveNext
AktBtn.MoveNext
end if
next f
AktBtn.Close
AktTabelle.Close
|
| |
|
| |
|
|
|
| а если записи во второй таблице кончатся раньше?
Я не вижу в этой задаче вложенных циклов, виджу 2 параллельных. | |
|
| |