Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Гоблин
Подскажите плиз
При открытии формы пишу код:

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-ой... и так столько, сколько записей получилось по критерию. Как определить текущее положение рекордсета?
Или что-то другое делать надо?


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.