Вопрос
Версия VB:6.0
На форме имеются элементы Data и ListBox. Data связан с таблицей. Требуется занести данные таблицы в ListBox. (заносятся фамилии пользователей программы).
Может что не правильно делаю, используя эти два элемента в паре. В книгах ответа не нашел.
Ответ
К сожалению ListBox не предназначен для непосредственной работы с элементом Data, даже если ты и выставляешь ему соответствующие свойства DataSource и DataField.
Поэтому, если тебе необходим обязательно ListBox, то его придется заполнить вручную:
Private Sub Form_Initialize()
Только посмотри какое именно поле тебе нужно отражать, т.к. Recordset содержит на самом деле все поля выбранной таблицы. Но заполнить — это не сложно. Но, очевидно, тебе будет необходимо сделать и синхронизацию перемещения по записям. Т.е., если ты просто заполнишь ListBox и после этого будешь нажимать на стрелки элемента Data — в ListBox-е не будет происходить перемещения, и наоборот — перемещаясь по строкам в ListBox — ты не вызовешь перемещения указателя записей. Это уже дополнительные сложности, хотя тоже, конечно, можно сделать.
With Data1.Recordset
Do Until .EOF
List1.AddItem .Fields(0).Value
.MoveNext
Loop
.MoveFirst
List1.ListIndex = 0
End With
End Sub
Только все это ни к чему — ведь есть специальные элементы управления, предназначенные именно для отображения данных из Баз Данных. Их и используй. Самый простой для элемента Data — это Microsoft Data Bound Grid Control 5.0 (SP3). Задаешь ему свойство Dat aSource-Data1 и все = ты имеешь заполненную полями таблицу, полностью синхронизированную с БД, непосредственно в которой ты можешь и корректировать записи, и добавлять, и удалять.
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация