Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как посчитать строки в списке?  [new]
BJ
Member

Откуда: Москва
Сообщений: 355
чего-то к вечеру клинит...
как посчитать сколько строк в выпадающем списке?
Me.Combo1.ListCount выдает цифру 8, хотя список еще не заполнен

хочется что то типа Me.Combo1.ItemCount
7 окт 05, 16:41    [1949481]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
spiteful!
Member

Откуда: Saint-Petersburg
Сообщений: 27
Вообще это как раз ListCount и показывает колличество строк в списке...
мб он проинициализирован где-то значениями, мб в конструкторе или еще что-нить...
7 окт 05, 16:54    [1949549]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
BJ
Member

Откуда: Москва
Сообщений: 355
странно.. проверю еще
7 окт 05, 16:55    [1949553]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
>хотя список еще не заполнен
В смысле еще не успел заполнится ?
В MDB кажись синхронно заполняется
В ADP так делаю

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub WaitEndOfRequery(rs As ADODB.Recordset, Optional SleepTime As Long = 33)
Dim T As Single
'Дождатся заполнения рекордсета
T = Timer
Do
    DoEvents
    Sleep SleepTime
Loop Until (rs.State = adStateOpen) Or Timer - T > GetOption("OLE/DDE Timeout (sec)")
End Sub

'....................................................

Combo1.Requery

WaitEndOfRequery Combo1.Recordset

Debug.Print Combo1.Recordset.RecordCount

'............................................................

PS для RecordCount кажись еще MoveLast надо , не помню.
7 окт 05, 16:57    [1949572]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
RVI
Member

Откуда: Москва
Сообщений: 5373
Это число строк в списке установленное по умолчанию,
см. вкладку Макет в свойствах.
7 окт 05, 16:58    [1949580]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
BJ
Member

Откуда: Москва
Сообщений: 355
да, это все так, но мне нужно чтобы при выборе значений из листбокса они появлялись в комбобоксе
7 окт 05, 17:07    [1949641]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
spiteful!
Member

Откуда: Saint-Petersburg
Сообщений: 27
Точно, мб ListCount с ListRows путаешь?!? ListRows по дефолту как раз 8...
7 окт 05, 17:07    [1949646]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
BJ
Member

Откуда: Москва
Сообщений: 355
вообще с заполнением то списка я разобралась, но перед заполнением надо ж из него все поудалять, а это и не работает

For j = 0 To Me.ComboBox1.ListCount
Me.ComboBox1.RowSourceType = "Value List"
Me.ComboBox1.RemoveItem (j)
Next
7 окт 05, 17:10    [1949660]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
BJ
Member

Откуда: Москва
Сообщений: 355
да, сорри, путаю..
7 окт 05, 17:11    [1949665]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
BJ
Member

Откуда: Москва
Сообщений: 355
причем странно.. повесила на кнопку MsgBox Me.ComboBox1.ListCount
проверяю- список пустой
нажимаю на кнопку - выдает 1
7 окт 05, 17:15    [1949690]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
spiteful!
Member

Откуда: Saint-Petersburg
Сообщений: 27
Удаляй вот так:
For j = combo.ListCount - 1 To 0 Step -1
phnname.RemoveItem (j)
Next j
7 окт 05, 17:25    [1949750]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать строки в списке?  [new]
Тяп-ляп
Member

Откуда: Москва
Сообщений: 804
автор
проверяю- список пустой
нажимаю на кнопку - выдает 1

Это он считает строку заголовков. Надо вычитать 1, если пустой.
Вот так:

IIf([lst].ListCount=1;0;[lst].ListCount)
7 окт 05, 17:27    [1949763]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить