DataEnvironment и DataCombo

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

DataEnvironment и DataCombo

Сообщение Ser-Robotiaga » 07.02.2009 (Сб) 19:19

Надо заполнить раскрывающийся список содержимым поля nameUser таблицы Users.
Я настроил в DataEnvironment1 подключение cn к БД. В нём создал объект Command под названием mycmdUsers, свойство CommandText котрого SELECT nameUser, psw FROM users.

Для DataCombo1
RowSource=DataEnvironment1 (это был единственно возможный выбор)
RowMember=CommandUsers (это был единственно возможный выбор)
DataField=nameUser
остальное по умолчанию.
В остальных свойствах не очень разбираюсь. Наверное что-то не настроил.
Список остается пустым :scratch:
Соединение работает точно. Следующий код выводит все что мне надо загнать в список.
Код: Выделить всё
Do
   Debug.Print DataEnvironment1.rsmycmdUsers("nameUser")
    DataEnvironment1.rsmycmdUsers.MoveNext
Loop Until (DataEnvironment1.rsmycmdUsers.BOF = True Or DataEnvironment1.rsmycmdUsers.EOF = True)

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: DataEnvironment и DataCombo

Сообщение Ser-Robotiaga » 20.02.2009 (Пт) 21:55

Ну с этим разобрался. За содержимое списка отвечает свойство ListField. Когда настроен RowSource, то в ListField остается выбрать столбец таблицы из которого формируется список.

А теперь мне надо решить такую задачу:
на форме есть текстовые поля связанные с таблицей БД и есть раскрывающийся список, также связанный с одним из полей этой же таблицы. Я хочу сделать, что бы после выбора в раскрывающемся списке, запустить поиск выбранного элемента списка в таблице, и в текстовых полях отобразить соответствующие данные.
Проще говоря,надо чтобы после выбора в списке DataCombo автоматически отображалась соответствующая запись в текстовых полях.
Я для этого пытаюсь использовать метод Find. Он срабатывает только один раз, а при другом выборе выдает "Операция была отменена"

Код: Выделить всё
Private Sub DataCombo1_Click(Area As Integer)

Dim i  As Integer
Dim strCriteriy As String
Dim bkm As Variant

bkm = adoNomenklatura.Recordset.Bookmark
adoNomenklatura.Recordset.MoveFirst

strCriteriy = "KodPr='" & DataCombo1.SelText & "'"
adoNomenklatura.Recordset.Find strCriteriy, 0, adSearchForward, bkm
' в следующем цикле я отображаю поля найденной записи в текстовых полях
For i = 0 To 3
   txtFields(i).Visible = True
   txtFields(i) = adoNomenklatura.Recordset.Fields(i)
Next
End Sub

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: DataEnvironment и DataCombo

Сообщение HandKot » 24.02.2009 (Вт) 8:20

не совсем уверен, но зачем выставлять вукмарки?

Код: Выделить всё
bkm = adoNomenklatura.Recordset.Bookmark
adoNomenklatura.Recordset.MoveFirst
?
I Have Nine Lives You Have One Only
THINK!


Вернуться в Базы данных

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

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

    TopList