powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как связать данные рекордсета с комбобоксом???
9 сообщений из 9, страница 1 из 1
Как связать данные рекордсета с комбобоксом???
    #33262367
Larysa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовала связать обычный комбобокс с adodc. Отображается всего одна запись, раскрывающийся список пустой. Пробовала связать dbcombo с рекордсетом - весь комбобокс пустой. При попытке присвоить: dbcombo1.rowsource=rs (где rs - рекордсет "Select CompanyName from Customers") выдает ошибку Type Mismatch.
В чем проблема?
Помогите.
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #33262422
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Специально для работы с ADO есть DataCombo.
Или комбобоксы сторонних разрабочиков, например ComponentOne.
Если не их (например ComboBox), вам придется в цикле наполнять данными из рекордсета.
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #33262430
Larysa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовала датакомбо. Проблема в том, что отображается только одна запись. Записи можно листать только элементом адодц. Как связать датакомбо с адодц или рекордсетом, чтобы при открытии комбобокса выпадающий список был заполнен?
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #33262448
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример на основе NorthWind.
Обратите внимание на Form2
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #33262527
Larysa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное!!!!!!!!!!!!!!!!!!!!!!!!! Получилось!!!!!!!!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как связать данные рекордсета с комбобоксом???
    #34319199
sv375
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Продолжу тему, если вы не против.

Аналогичная задача
На форме datacombo (.name=cboSelTplLetter), нужно его заполнить.
Заполняю следующей процедурой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub FillCboTpl()
      
    Set rs = New ADODB.Recordset
    strSql = "SELECT * FROM TplLet;"
    rs.Open strSql, cn, adOpenKeyset, adLockReadOnly
        
    With cboSelTplLetter
        Set .DataSource = rs
        Set .RowSource = rs
        .DataField = "id_tpl"
        .ListField = "name"
        .BoundColumn = "id_tpl"
                
    End With
    
    rs.Close
    Set rs = Nothing
    
End Sub

В результате в списке только первая запись. ...?
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #34319808
sv375
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот так работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub FillCboTpl()
      
    Set rs = New ADODB.Recordset
    strSql = "SELECT * FROM TplLet;"
    rs.Open strSql, cn, adOpenKeyset, adLockReadOnly
        
    With cboSelTplLetter
        Set .DataSource = rs
        Set .RowSource = rs
        .DataField = "id_tpl"
        .ListField = "name"
        .BoundColumn = "id_tpl"
                
    End With
    
    'rs.Close изменение
    'Set rs = Nothing 'изменение
    
End Sub

Но нельзя же оставить рекордсет открытым, и почему это влияет, никак не пойму.

Просвятите кто-нибудь, пожалуйста.
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #34319874
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sv375Но нельзя же оставить рекордсет открытым, и почему это влияет, никак не пойму.


Не нельзя, а нужно. Именно это и тебуется если ты хочешь продолжать работать с набором данных. Его можно отсоеденить от источника чтобы не блокировать таблицу, но он непременно должен быть открыт, а уж этим rs = Nothing ты и вовсе унижтожаешь его, естественно никаких записей больше не будет :).

Другой путь - читать в цикле все строки рекордсета и обавлять их в ручками в комбо.

В данном случае комбо лишь показывает тебе содержимое прилинкованного поля рекордсета.
...
Рейтинг: 0 / 0
Как связать данные рекордсета с комбобоксом???
    #34319930
sv375
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, понятно.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как связать данные рекордсета с комбобоксом???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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