|
|
|
| Подскажите плиз
При открытии формы пишу код:
Dim rst As DAO.Recordset
Dim a As Integer
a = DCount("[Поле]", "[Таблица]", "ПолеКритерия= '" &некое условие & "'") 'колич записей по критерию
Set rst = CurrentDb.OpenRecordset("SELECT [Таблица].Поле1, [Таблица].Поле2, [Таблица].Поле3 FROM [Таблица] WHERE ((([Таблица].Поле1)= " _
& " '" &Некое условие& "'));")
With rst
If .RecordCount <> 0 Then
Do While Not .EOF 'конец будет loop
For i = 1 To a
Me("Надпись" & i).Caption = !Поле2 'присваиваем i-ой надписи значение поля2
Next i
.MoveNext
Loop
End If
End With
Так вот получаю такой эффект. Допустим определяет, что записей отсеяно по данному условию 4, стало быть сначала первую запись влепит на 4 надписи, затем вторую на место тех же 4-х и так 4 раза. А надо, что бы первую - в первую надпись. Вторую - во вторую и т.д. Для этого необходимо отслеживать текущее положение рекордсета, ввести еще переменную, и присвоить ей это значение. Типа рекордсет на 1-ой записи таблицы. Присваиваем ее содержание из поля первой надписи. Далее рекордсет на 2-ой... и так столько, сколько записей получилось по критерию. Как определить текущее положение рекордсета?
Или что-то другое делать надо? | |
|
| |
|
|
|
| ns сам так написал
У тебя цикл
For i = 1 To a
а надо просто i=i+1 | |
|
| |
|
|
|
|
i = 1
.MoveLast
.MoveFirst
Do While Not .EOF 'конец будет loop
Me("Надпись" & i).Caption = !Поле2 'присваиваем i-ой надписи значение поля2
.MoveNext
i=i+1
Loop
End If
End With
|
| |
|
| |
|
|
|
| Охренеть как просто все оказалось. Спасибо, все работает.
| |
|
| |
|