Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить combo1.ListIndex / 4 сообщений из 4, страница 1 из 1
16.08.2004, 16:38
    #32651375
nostra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить combo1.ListIndex
Гибкости мозгов что-ли нехватат?
Начинаю рассказ.
использую следующую конструкцию:
Dim rstType As ADODB.Recordset
Dim strSqlType As String
Dim i As Long
***
'для каждого добавленной записи добавляю уникальное значение
'ItemData равной ID в таблице, которую содержит rstType
i = 0
With rstType
.MoveFirst
Do While Not .EOF
cboType.AddItem !t1
cboType.ItemData(i) = !id_t
.MoveNext
i = i + 1
Loop
End With
'а вытаскиваю нужный ID выбранной записи так:MsgBox cboType.ItemData(cboType.ListIndex)
Вопрос: Как узнать значение св-ва ListIndex по ItemData, фактически по ID порядковый номер записи в комбобоксе, составленном вышеприведённой конструкцией?
...
Рейтинг: 0 / 0
17.08.2004, 08:56
    #32652016
Bolik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить combo1.ListIndex
На ум пришел только простой перебор по ListBox.
...
Рейтинг: 0 / 0
17.08.2004, 09:08
    #32652031
nostra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить combo1.ListIndex
Спасибо! Беспокойная ночь тоже дала мне это решение, больше ничего придумать не смог.
...
Рейтинг: 0 / 0
17.08.2004, 09:46
    #32652106
nostra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить combo1.ListIndex
(Для тех кому интересен ответ)Сделал так:

Dim m_MyIndex As Long

Private Sub Form_Load()
Init
FindMyIndex
cbo1.ListIndex = m_MyIndex
End Sub

Private Sub Init()
Dim strSql As String
Dim rstType As ADODB.Recordset
Dim i As Long

OpenConnection
strSql = "SELECT * FROM type"
Set rstType = GetRecordset(strSql)
With rstType
i = 0
.MoveFirst
Do Until .EOF
cbo1.AddItem !t1
cbo1.ItemData(i) = !id_t
i = i + 1
.MoveNext
Loop
End With
rstType.Close
CloseConnection
End Sub

Private Sub FindMyIndex()
Dim i As Long
Dim ID As Long

ID = 7 ' то идентификатор, по которому нужно найти запись.
'Его каждый берёт откуда ему нужно.
With cbo1
For i = 0 To .ListCount - 1
If .ItemData(i) = ID Then
m_MyIndex = i
Exit Sub
Else
End If
Next i
End With
m_MyIndex = -1
MsgBox "Запись не найдена"
End Sub
Процедура Init заполняет комбик, FindMyIndex - находит ListIndex, который соответствует ID.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить combo1.ListIndex / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]