Существует бесплатная литература по адресу expert's exchange и по адресу teck republic об использовании свойства combobox.recordset для заполнения combobox в форме доступа.Как заполнить ComboBox набором записей с помощью VBA
Эти элементы управления обычно заполняются строкой «SELECT *» в свойствах «rowsource» элемента управления, ссылаясь на таблицу или запрос, доступные со стороны клиента. Когда мне нужно отображать боковые данные сервера в combobox, я создаю временную локальную таблицу и импортирую запрошенные записи. Это занимает много времени, особенно с большими столами.
Возможность использования набора записей для заполнения элемента управления combobox позволит пользователю напрямую отображать данные со стороны сервера.
Вдохновленные 2 предыдущих примеров, я написал код следующим образом:
Dim rsPersonne as ADODB.recordset
Set rsPersonne = New ADODB.Recordset
Set rsPersonne.ActiveConnection = connexionActive
rsPersonne.CursorType = adOpenDynamic
rsPersonne.LockType = adLockPessimistic
rsPersonne.CursorLocation = adUseClient
rsPersonne.Open "SELECT id_Personne, nomPersonne FROM Tbl_Personne"
fc().Controls("id_Personne").Recordset = rsPersonne
Где:
- connexionActive: мое постоянное подключение ADO к серверу базы данных
- Ь() : моя текущая/активная форма
- элементы управления («id_Personne»): это элемент управления со списком для заполнения компанией «S список сотрудников
- версия Access в 2003
К сожалению, это не работает!
В режиме отладки я могу проверить, правильно ли создан набор записей, с запрошенными столбцами и данными и правильно связан с элементом управления combobox. К сожалению, когда я показываю форму, я получаю пустое поле со списком, без записей! Любая помощь высоко ценится.
EDIT:
Это свойство записей действительно доступно для конкретного объекта поля со списком, а не для стандартного объекта управления, и я был очень удивлен, обнаружив его несколько дней назад. Я уже пытался использовать функцию обратного вызова combobox или заполнить список методом «addItem» для combobox. Все это требует много времени.
Не работайте для меня:/Имейте ошибку 91: Блок с нет –
Если вам нужен совет, вы должны сообщить код неисправности и определить строку, в которой была ошибка. –
Описание ошибки здесь: http://stackoverflow.com/questions/16231456/how-to-populate-a-listbox-with-a-adodb-recordset-error-91 –