ComboBox + RecordSet

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

ComboBox + RecordSet

Сообщение lord0n » 05.08.2005 (Пт) 19:26

Вопрос в следующем:
есть комбо заполненная данными(не из базы, в ручную).
после выбора строки из базы данных, нужно чтоб в комбо появилось значение = значению в определенном поле базы

а то прямым перебором значений и их сравнением не охота делать

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 17:05

н-да, а можешь поятнее написать?
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 19:29

пример:
в комбо занесено:
1
2
3

я в базе выбираю стороку в которой есть значение 2 и нужно чтоб оно выбралось в комбо
как если бы комбо была присоеденена к базе

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 20:41

Вообщем, если я прально понял ... делаешь ДатаГрид связанный с БД, потом щелкаешь по строке - т.е. определяешь значение нужного тебе поля.
Допустим для 3 поля грида.
Код: Выделить всё
MegaValue = DataGrid.Columns(2).Value

После этого пробегаешь по комбобоксу
и если там есть соответствующее значение присваешь ComboBox.ListIndex
Код: Выделить всё
For I = 0 to ComboBox.ListCount-1
   IF ComboBox.List(i) = MegaValue Then ComboBox.ListIndex = I: Exit for
Next I
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 20:44

а по другому нельзя?
так я уже делал
перебором не хоца

нет ли у комба чегонить типа поиска :roll:

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 20:58

Можно, перед тем как в базе ковыряться забиваешь комбобокс уникальными значениями - далее засоваем в коллекцию с уникальным ключем.
Например.
Код: Выделить всё
Set XX as new Collection
For I = 0 to ComboBox.ListCount-1
  'Что-то типа такого ... не помню как там новый AddNew, Add или Additem
  XX.AddItem I, "K" & ComboBox.List(i)
Next I

'Функция для получения
Function GetIndex(tValue) as long
  On error resume next
  GetIndex = -1 ' если ето значение, значит е найдено 
  GetIndex = XX("K" & tValue)
End Function


после наполнения колеции при выборе поля запрашивай функцию,
Код: Выделить всё
P = getindex(MegaValue)
If P<>-1 then ComboBox.Listindex = P


Работает быстрее:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 21:01

Поиска в нем нет:))) Наверно поиск там тоже перебором:)
Есть извраты но я тебя не рекомендую (например импорт в Recordset + Поиск через его методы.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 21:13

спасибо еще раз
ща буду пробовать :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 122

    TopList