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

Форум: MS ACCESS

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

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

 
 

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

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

тема: По фильтру надо присвоить номер по порядку?
 
 автор: Елена   (25.06.2007 в 07:29)   личное сообщение
 
 

Подскажите, пожалуйста, как присвоить в строках номер по порядку.
Например, есть форма 1000 записей, по фильтру отобрано 200 записей, надо присвоить каждой строке номер, начиная с какого-нибудь (где-то надо указать, например с 2000) как это делается?
спасибо.

  Ответить  
 
 автор: час   (25.06.2007 в 08:19)   личное сообщение
 
 

это видимо надо создать дополнительное поле...
в нём указать данные = 1
и смма с накоплением = Для всего

  Ответить  
 
 автор: Елена   (25.06.2007 в 09:11)   личное сообщение
 
 

Такая фишка в отчетах есть, а в форме нет! Мне надо именно в форме.

  Ответить  
 
 автор: osmor   (25.06.2007 в 09:33)   личное сообщение
 
 

нумерация в форме дело не благодарное.
почитайте Вот это
http://hiprog.com/index.php?option=com_content&task=view&id=359&Itemid=35
или решение от MS
создаете
функцию

Function LineNumber(id As Long) As Integer
'id- значение ключевого поля, если поле строка то -  id As String
Dim intI As Integer
Dim rst As Object
On Error GoTo Err_LineNumber
Set rst = Me.RecordsetClone 
rst.FindFirst "[КодЗаписи] = " & id
' если id строка  то 
'rst.FindFirst "[КодЗаписи] = '" & id & "'"
    Do Until rst.BOF
         intI = intI + 1
         rst.MovePrevious
   Loop
Exit_LineNumber:
         LineNumber = intI
    Exit Function
Err_LineNumber:
         intI = 0
         Debug.Print Err.Description
         Resume Exit_LineNumber
End Function

создаете свободное поле в свойстве данные данного поля пишите:

=LineNumber([КлючевоеПоле])


на записях больше 20 будет заметно тормозить

  Ответить  
 
 автор: Елена   (25.06.2007 в 12:40)   личное сообщение
 
 

В форме создала поле- свободное. в данные -=LineNumber([КлючевоеПоле])
А функцию куда. тоже в форму? куда-то...
пожалуйста, подробнее.
спасибо.

  Ответить  
 
 автор: osmor   (25.06.2007 в 14:08)   личное сообщение
 
 

Если нужно только в этой форме, то в модуль формы.
если хотите универсальности, то нужно в глобальный модуль и немого подправить (вместо ME текущую форму передавать или определять)

  Ответить  
 
 автор: Елена   (25.06.2007 в 14:59)   личное сообщение
 
 

нет, у меня не получается!

попробовала по ссылке сделать вроде бы нормально считает, но
начальное значение n, надо менять! (задавать нач. значение)
надо чтобы было поле, куда можно поставить начало счёта, а я не знаю как это сделать!!!

SELECT DISTINCT Numeration(MyField) As Num, MyField FROM MyQuery WHERE Numeration() = 0;

В запросе используется функция Numeration. Вот ее описание:

Public Function Numeration(Optional var) As Long
Static n As Long
If IsMissing(var) Then
n = 0
Else
n = n + 1
End If
Numeration = n
End Function

  Ответить  
 
 автор: osmor   (26.06.2007 в 12:09)   личное сообщение
 
 

Проверить не могу, попробуйте так:
если начальное значение должно быть 10

SELECT DISTINCT Numeration(MyField) As Num, MyField FROM MyQuery WHERE Numeration() = 10;


Public Function Numeration(Optional var) As Long
Static n As Long
If IsMissing(var) Then
n = 10
Else
n = n + 1
End If
Numeration = n
End Function

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