Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заполняю комбобох
 
 автор: час   (17.01.2010 в 16:04)   личное сообщение
 
 


    Do While Not rst.EOF                  ' заполняем наименованиями список
        Me!Combo_DROUP.AddItem rst("GROUP_NAME")    '    наименование группы
        Me!Combo_DROUP.AddItem rst("ID_GROUP")           '  номер группы
        rst.MoveNext
    Loop


А как в две колонки(в два столбца) заполнялось что бы???

если бы был метод .AddListItem

  Ответить  
 
 автор: ДрЮня   (17.01.2010 в 17:00)   личное сообщение
 
 

попробуй так

...
Combo_DROUP.AddItem rst("GROUP_NAME")
Combo_DROUP.ItemData(Combo_DROUP.NewIndex) = rst("ID_GROUP")

  Ответить  
 
 автор: alecks_lp   (17.01.2010 в 17:51)   личное сообщение
 
 

или так

Dim cmb As Access.ComboBox
Dim rs As New ADODB.Recordset
Dim strString As String
Dim lngN As Long
Dim cntC As Long
Const ITEM_DELIMITER = ";"
strString = vbNullString
lngN = rs.Fields.Count
Set cmb = Me.Combo_DROUP
cmb.RowSourceType = "Value List"
cmb.ColumnCount = lngN
Do Until rs.EOF
    For cntC = 0 To lngN - 1
        strString = strString & CStr(Nz(rs.Fields(cntC)), vbNullString) & ITEM_DELIMITER
    Next cntC
    rs.MoveNext

Loop
lngN = Len(strString)
If lngN > 1 Then
    strString = Left(strString, lngN - 1)
    cmb.RowSource = strString
Else
    cmb.RowSource = vbNullString
End If

  Ответить  
 
 автор: Lukas   (17.01.2010 в 18:38)   личное сообщение
 
 

1. А почему-бы просто не присвоить значение RowSource - строку SQL или имя сохраненного запроса (для ТипИсточникаСтрок=Таблица/Запрос)?
2. AddItem поштучно будет довольно медленно. Быстрее собрать одну строку и присвоить ее в качестве RowSource.
(для ТипИсточникаСтрок=Список значений)

  Ответить  
 
 автор: alecks_lp   (17.01.2010 в 18:41)   личное сообщение
 
 

а также
3. Set cmb.recordset = rs

  Ответить  
 
 автор: час   (17.01.2010 в 20:39)   личное сообщение
 
 

Спасибо!!!!
пробываю

может не существенно, но я в VB6 пытаюсь...

  Ответить  
 
 автор: alecks_lp   (17.01.2010 в 21:24)   личное сообщение
 
 


может не существенно, но я в VB6 пытаюсь...


существенно, потому и указал тип

Dim cmb As Access.ComboBox 

  Ответить  
 
 автор: час   (17.01.2010 в 21:31)   личное сообщение
 
 

Значит - если access на машине не установлен - тогда........ничё не выйдет?

  Ответить  
 
 автор: час   (17.01.2010 в 21:33)   личное сообщение
 
 

нифига никакой разделитель не создаёт колонок
ни ; ни Tab ни ,

  Ответить  
 
 автор: Denis V.   (17.01.2010 в 21:34)   личное сообщение
 
 

Не знаю, как в VB, но в Access, чтобы было две колонки, надо настроить элемент управления соответствующим образом. А в методе AddItem в качестве первого аргумента передаётся строка, в которой с помощью разделителя отделяются части, относящиеся к разным столбцам. По-моему, так. Т.е. в Вашем случае надо было бы написать как-то так:

Me!Combo_DROUP.AddItem rst("GROUP_NAME")  & ";" & rst("ID_GROUP") 

  Ответить  
 
 автор: час   (17.01.2010 в 21:41)   личное сообщение
66 Кб.
 
 

Да ты прав в Access проще - можнj ваще конструктором создать и подправить ...
А тут даже ширину колонок негде указать........

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList