LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Присвоени...
 Тема: Присвоение ранга (места) по отсортированным данным
 
 15.06.2007 20:04:55
Алексей12
3 сообщения


Тема: Присвоение ранга (места) по отсортированным данным
Добрый день.
Проблема такая. После работы секундомера данные сортируются по меньшему времени.
Ворпрос:
Как автоматически присвоить данным занятые места (т.е. кто затратил меньше времени тот 1 и т.д.)?
И как посчитать отставание от лидера?

Спасибо.


P.S. Раздел для новичков
Автор: Алексей от 06.01.2004 11:15:19 Источник ...
 15.06.2007 20:04:55
All
4316 сообщения
1-ый


RE: Присвоение ранга (места) по отсортированным данным
С использованием VBA можно это сделать так.
Private Sub butADO_Click()
Dim rst As ADODB.Recordset, i as long
' Включаем обработку ошибок
On Error GoTo 999
' Создание запроса
Set rst = New ADODB.Recordset

' Заполняем запрос
With rst
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = "SELECT * from [Table1] Order By time1 asc"

.Open , CurrentProject.Connection, , , adCmdText
If rst.RecordCount Then
.MoveLast ' Заполнение запроса и расчет кол-ва записей
.MoveFirst ' Начнем с первой записи
i = 1
Do Until .EOF
' Изменение записей
rst!Number = i
rst.Update
rst.MoveNext
i = i + 1
Loop
End If
End With

' Конец просмотра
rst.Close
Set rst = Nothing
Exit Sub
999:
MsgBox Err.Description
Err.Clear
End Sub


P.S. Раздел для новичков
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 20:04:55
All
4316 сообщения
1-ый


RE: Присвоение ранга (места) по отсортированным данным
Можно решить проблему и без использования VBA, а через запросы. Например, этот запрос (qryCount) сортирует и номерует записи по возрастанию поля time1.
SELECT table1.Number, nz(DCount("[time1]","[table1]","[time1]<=" & [time1]),0) AS Pos FROM table1 ORDER BY table1.time1;
Этот запрос присваивает полю Number новый номер в таблице.
UPDATE qryCount SET qryCount.[Number] = [pos];




P.S. Раздел для новичков
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 20:04:55
Алексей12
3 сообщения


RE: Присвоение ранга (места) по отсортированным данным
Спасибо все работает.
Второй способ не пробывал, но думаю, что пригодится.


P.S. Раздел для новичков
Автор: Алексей от 13.01.2004 11:52:03 Источник ...
 28.05.2008 12:39:15
vitabios
21 сообщения


Re: RE: Присвоение ранга (места) по отсортированным данным
наконец то нашел то что нужно именно мне, но есть 2 вопроса:
1. если первым способом объясните пожалуйста куда этот код надо ставить? и что создать и вообще что сделать чтобы оно работало
2. про второй способ - все сделал, отлично работает. Только если результат не целое число (например 9) а дробное (например 100 метров пробежал за 11,6) - то ранг - выдает "ошибка". как сделать чтобы работало с дробными числами?

заранее спасибо
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Присвоени...
ПоискПоиск  Список форумовСписок форумов  
right