СообЧа > База Знаний > Программирование > Visual Basic > Базы данных

Вопрос

Версия VB:6.0

На форме имеются элементы Data и ListBox. Data связан с таблицей. Требуется занести данные таблицы в ListBox. (заносятся фамилии пользователей программы).

Может что не правильно делаю, используя эти два элемента в паре. В книгах ответа не нашел.

Ответ

К сожалению ListBox не предназначен для непосредственной работы с элементом Data, даже если ты и выставляешь ему соответствующие свойства DataSource и DataField.

Поэтому, если тебе необходим обязательно ListBox, то его придется заполнить вручную:

Private Sub Form_Initialize()
With Data1.Recordset
   Do Until .EOF
      List1.AddItem .Fields(0).Value
      .MoveNext
   Loop
.MoveFirst
List1.ListIndex = 0
End With
End Sub

Только посмотри какое именно поле тебе нужно отражать, т.к. Recordset содержит на самом деле все поля выбранной таблицы. Но заполнить — это не сложно. Но, очевидно, тебе будет необходимо сделать и синхронизацию перемещения по записям. Т.е., если ты просто заполнишь ListBox и после этого будешь нажимать на стрелки элемента Data — в ListBox-е не будет происходить перемещения, и наоборот — перемещаясь по строкам в ListBox — ты не вызовешь перемещения указателя записей. Это уже дополнительные сложности, хотя тоже, конечно, можно сделать.

Только все это ни к чему — ведь есть специальные элементы управления, предназначенные именно для отображения данных из Баз Данных. Их и используй. Самый простой для элемента Data — это Microsoft Data Bound Grid Control 5.0 (SP3). Задаешь ему свойство Dat aSource-Data1 и все = ты имеешь заполненную полями таблицу, полностью синхронизированную с БД, непосредственно в которой ты можешь и корректировать записи, и добавлять, и удалять.

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация