Как синхронизировать 2 ComboBox через Adodc?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Как синхронизировать 2 ComboBox через Adodc?

Сообщение Rojohn » 22.07.2005 (Пт) 10:07

Подскажите пожалуйста, как можно синхронизировать два ComboBox c Adodc, содержащей два поля из БД Access, чтобы каждое поле шло в свой Combo и в Combo осуществлялся поиск поочерёдно по каждой букве текста в любом из Combo? Можно без Ado... Знаю есть таокая штука как DBCombo, но хотелось бы обойтись без неё? Если нельзя, то подскажите где взять DBCombo?
Спасибо!

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 22.07.2005 (Пт) 10:51

Вообще не понятно что, где и как... Поясни поподробнее с указанием ключевых слов, что ты хочешь получить...
Бороться и искать, найти и перепрятать!

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Re: Как синхронизировать 2 ComboBox через Adodc?

Сообщение MeMBus » 22.07.2005 (Пт) 10:55

Rojohn писал(а):Если нельзя, то подскажите где взять DBCombo?
Спасибо!

Components... -> Microsoft Data Bound List Control (DBLIST.ocx)
Бороться и искать, найти и перепрятать!

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

К вопросу...

Сообщение Rojohn » 22.07.2005 (Пт) 13:22

А чё непонятного? Есть таблица в базе с двумя полями 1) Текст 2) Код. Надо вывести их, например в Combobox-сы, что бы при выборе текста во втором появлялся соответствующий код и чтобы можно было осуществлять поиск в обеих Combo по одному символу. Знаю примерно как это делается в DBCombo, но не совсем. И можно ли то же самое сделать в простом ComboBox.

Поиск в DBCombo по первым введенным буквам.
Постепенно вводя буквы находишь нужную запись.

Private Sub DBCombo1_KeyUp(KeyCode As Integer, Shift As Integer)
Dim n%
Select Case KeyCode
Case Is >= 48
DBCombo1.SelStart = Len(DBCombo1.Text) -Combo1.SelLength+ 1
n = DBCombo1.SelStart
Data1.Recordset.FindFirst "[Название поля] LIKE '" & DBCombo1.Text & "*'"
If Data1.Recordset.NoMatch = False Then
DBCombo1.Text = Data1.Recordset.Fields("Название поля").Value
End If
DBCombo1.SelStart = n
DBCombo1.SelLength = Len(DBCombo1.Text) - n
End Select
End Sub

в ентом примере Data - подобие Adodс. Как через него заполнять DBCombo? И можно ли сделать через простые Combo?

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Дополнение...

Сообщение Rojohn » 22.07.2005 (Пт) 13:36

Как заполнить DBCombo я каца знаю:) Там есть RowSource, но всё же можно поподробнее... А насчёт простого Combo пока не понял...

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Далее...

Сообщение Rojohn » 22.07.2005 (Пт) 14:08

Так и не получилось заполнять даже DBCombo... как? И опять же про Combo...

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Как сделать?

Сообщение Rojohn » 22.07.2005 (Пт) 22:21

Почему Adodc не подключается к DBCombo? Как подключить элемент Data к запароленой БД Access? Кто-нить знает? Очень нада.... плз

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Очень надо..

Сообщение Rojohn » 24.07.2005 (Вс) 23:08

Почему Adodc не подключается к DBCombo? Как подключить элемент Data к запароленой БД Access? Кто-нить знает?

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Re: К вопросу...

Сообщение MeMBus » 25.07.2005 (Пн) 3:52

Rojohn писал(а):А чё непонятного? Есть таблица в базе с двумя полями 1) Текст 2) Код.

Я думал, что я один непонятливый такой... но что-то уж никто не отвечает... Посему, как говорилось в одном из фильмов «Извини, в ответах я ограничен. Правильно задавай вопросы...».
Бороться и искать, найти и перепрятать!

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Задачка сокращается:)

Сообщение Rojohn » 25.07.2005 (Пн) 10:10

Кое с чем разобрался... Допёр, что Data работает только с DBCombo, а Adodc работает с DataCombo, причём отлично:) Остался один вопрос: Два контрола DataCombo подключены к одной Adodc. Как сделать так, чтобы два DataCombo менялись синхронно, т.е. когда выбиралась запись в одном DataCombo (первое поле из Adodc) другой DataCombo автоматически ставился на соответствующую запись из другого поля Adodc. Мона конечно каждый раз запросом искать запись в противоположном DataCombo, но я подумал, что если они подключены к одной Adodc, то это должно делаться автоматически, как? Проставить какие-нить значения свойств? Подскажите плз (надеюсь теперь написал понятно...)

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 25.07.2005 (Пн) 14:32

Смотри, заполним в Combo1 все записи из поля Comment из таблицы tbl (не забудь подключить DAO 3.6):

Код: Выделить всё
dim db as database, rs as recordset

Private sub Form_Load()
set db=opendatabase("Тут путь",true) 'оставь true если хочешь чтоб к базе больше никто не подошел...
set rs=db.openrecordset("select Comment from tbl")
do while not rs.eof
  Combo1.additem rs!Comment
  rs.movenext
loop
End sub

Private sub Form_Unload (cancel as integer)
set rs=nothing
set db=nothing
end sub

И не нужен тебе ни какой ADODC...

з.ы. Заранее извеняюсь, если где-то синтаксис хромает - бейсик не установлен, писал по памяти
А я все практикую лечение травами...

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Спасиб, конечно:)

Сообщение Rojohn » 25.07.2005 (Пн) 15:11

Как заполнить DataCombo через Recordset я и сам знаю:) Вопрос был в другом: если заполнить 2 DataCombo разными полями из одной таблицы БД, то как сделать, чтобы они менялись синхронно (т.е. значения этих DataCombo были точно напротив друг-друга, как по таблице Access). Просто сравнивать индексы нельзя, т.к. нельзя будет сделать проверку введенного текста на наличие в массиве записей DataCombo, или можно? Потом необходим поиск по буквам...

з.ы. Создал новую тему, где попытался конкретизировать вопрос...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 25.07.2005 (Пн) 15:17

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

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 25.07.2005 (Пн) 15:20

Потом необходим поиск по буквам...

Ну тут я думаю и сам справишься - грамотный перебор рулит...
А я все практикую лечение травами...

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Сообщение Rojohn » 25.07.2005 (Пн) 15:33

А как найти отсутствующее значение второго Combo, при абракадабре в первом? Порядок не собьётся? Как ассоциировать с базой.

З.ы. сравнивал простые Combo по ListIndex но были ситуации, когда порядок менялся и записи оказались не взаимосвязаны...

Rojohn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 439
Зарегистрирован: 22.06.2005 (Ср) 11:00
Откуда: Moscow city

Сообщение Rojohn » 25.07.2005 (Пн) 15:36

Ща посмотрю... там Шаман в другой теме кой-чего кинул:)

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 25.07.2005 (Пн) 15:40

Для таких ситуаций пользуй ItemData - в него заноси ID из таблицы, и сравнивай наздоровье...
А я все практикую лечение травами...


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

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

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 147

    TopList