- Код: Выделить всё
Option Explicit
Dim vData As Variant
Private Sub Form_Load()
vData = Empty
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\ZapKniga\ZapKniga.mdb;")
Set rs = cn.Execute("SELECT * FROM ElPhones ORDER BY ElPhones.TELEPHONE")
Me.VSFlexGrid1.Clear
vData = rs.GetRows
rs.Close
Set rs = Nothing
Set cn = Nothing
VSFlexGrid1.BindToArray vData
End Sub
Таблица заполняется очень быстро, но почему-то не срабатывает сортировка, при нажатии на столбец.
Если вместо
- Код: Выделить всё
vData = rs.GetRows
rs.Close
Set rs = Nothing
Set cn = Nothing
VSFlexGrid1.BindToArray vData
написать
- Код: Выделить всё
Set VSFlexGrid1.DataSource = rs
Set VSFlexGrid1.DataSource = Nothing
rs.Close
Set rs = Nothing
Set cn = Nothing
- все в порядке. Сортировка срабатывает, но таблица заполняется в несколько раз медленее. Но все-равно, гораздо быстрее, нежели ее заполнять в цикле русками.
Уважаемые, в чем проблеа? Помогите пожалуйста разобраться. Хотелось бы использовать первый спрособ загрузки таблицы.
Еще не могу разобраться, как в коде сделать так, чтобы выделялась строка, удовлетворяющая определенному критерию, к примеру - идентификатор, в столбце, скрытом от пользователя?
Неужели перебирать все записи в столбце, а потом
- Код: Выделить всё
VSFlexGrid1.toprow
Должен ведь в этом объекте быть свой механизм поиска, ведь при нажатии на символ на клавиатуре в VSFlexGrid курсор перемещается к первому значению столбца, удовлетворябщему данному критерию.
Извиняюсь за назойливость, еще не получается перейти к записи, на которой расположен курсор, тоже испольхую Toprow, хотя в ListView есть такой механизм!
Жду от Вас помощи, буду признателен любой информации.