Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как определить текущее положение рекордсета
 
 автор: Гоблин   (05.11.2011 в 21:34)   личное сообщение
 
 

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

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

  Ответить  
 
 автор: час   (05.11.2011 в 22:00)   личное сообщение
 
 

ns сам так написал
У тебя цикл
For i = 1 To a
а надо просто i=i+1

  Ответить  
 
 автор: час   (05.11.2011 в 22:01)   личное сообщение
 
 


i = 1
.MoveLast
.MoveFirst
Do While Not .EOF 'конец будет loop

Me("Надпись" & i).Caption = !Поле2 'присваиваем i-ой надписи значение поля2
.MoveNext

i=i+1


Loop
End If
End With

  Ответить  
 
 автор: Гоблин   (05.11.2011 в 22:18)   личное сообщение
 
 

Охренеть как просто все оказалось. Спасибо, все работает.

  Ответить  
 
 автор: час   (05.11.2011 в 22:46)   личное сообщение
 
 

Знакомые грабли - сам по ним ходил.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList