powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / DataComboBox и БД Access
13 сообщений из 13, страница 1 из 1
DataComboBox и БД Access
    #32823198
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в комбобокс поместить данные из поля таблицы, которая находится в аксессовской ДБ (mdb)? Использовать DataComboBox, типа там есть какое-то свойство... Что это за свойство, которое позволяет из БД в комбо записи помещать?
Пробовал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Form_Load()
    Adodc1.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\my.mdb;"
    Adodc1.RecordSource = "select * from oper in 'c:\my.mdb'"
    Adodc1.Refresh

    Adodc2.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\my.mdb;"
    Adodc2.RecordSource = "select * from oper in 'c:\my.mdb'"
    Adodc2.Refresh
End Sub

Причем с Adodc1 связан MSHFlexGrid1, а Adodc2 связан с этим DataCombo1 через datasource. В Гриде данные отображаются, а в комбобоксе нет! Законный вопрос-почему!?
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823291
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что в DataCombo1 нужно использовать свойство RowSource.

PS: Лучше не пользуй ADODC
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823328
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy
PS: Лучше не пользуй ADODC
А что лучше использовать? И из каких соображений?
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823340
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
свойстве RowSource ставлю значение Adodc1 или 2, все равно комбо пустой...
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823434
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из соображений глючности ADODC. А использовать нужно просто ADO. Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
    cn.CursorLocation = adUseClient
    cn.Open "твоя строка"
    rs.Open "твой запрос", cn, adOpenStatic, adLockBatchOptimistic
    Set rs.ActiveConnection = Nothing
    Set DataCombo1.RowSource = rs

...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823449
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, в ListField нужно написать название колонки, которую требуется отобразить, а в BoundColumn название колонки с PK, если он нужен.
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823468
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
n.CursorLocation = adUseClient
[/quot]
а эта строка что указывает?
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823493
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курсор на клиентской стороне. Просто я всегда использую отсоединенные рекордсеты, которые работают только с клиентским курсором. Кроме того, некоторые гриды (и DataCombo по-моему в их числе) могут отображать только отсоединенные рекордсеты.
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823507
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyКстати, в ListField нужно написать название колонки, которую требуется отобразить, а в BoundColumn название колонки с PK, если он нужен.

а РК это что?
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823513
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Primary Key
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823560
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ясно. Спасибо!
Только выставить ListField, BoundColumn не получилось...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim strcnn as String   

    strcnn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\my.mdb;"
    cn.CursorLocation = adUseClient
    cn.Open strcnn
    rs.Open "select oper.fio from oper ", cn, adOpenStatic, adLockBatchOptimistic
    Set rs.ActiveConnection = Nothing
    Set DataCombo1.RowSource = rs
    Set DataCombo1.ListField = rs                          'пишет ошибку* 
    Set MSHFlexGrid1.DataSource = rs
End Sub
А почему пишет ошибку? поле то так и так только одно по sql-запросу!
В таблице oper 2 поля: 1-ключ, 2-fio
Вот я пытался поле fio задернуть в комбобокс.....
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823617
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не Set DataCombo1.ListField = rs, а DataCombo1.ListField = "fio"
Чаще смотри MSDN и Object Browser, там ответы на все вопросы.
...
Рейтинг: 0 / 0
DataComboBox и БД Access
    #32823718
Kodeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничто не заменит общения и обмена знаниями на форумах... :)
ОКЭ, спасиб
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / DataComboBox и БД Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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