Сортировка данных в DataGrid

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Валерий
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 11.03.2003 (Вт) 21:13
Откуда: Кисловодск

Сортировка данных в DataGrid

Сообщение Валерий » 12.03.2003 (Ср) 22:11

:?: Подскажите пожалуйста код для сортировки данных в DataGrid, чтобы можно было сотировать данные при нажатии на заголовке столбца. Или например, при выделении столбца и нажатии кнопки "сортировка" на тулбаре.
Код сам по себе не сложный, но куда его (в какое событие) засунуть, чтобы сортировка происходила по нажатию мыши на заголовок столбца?
Кто не хочет нашего дерева - мы того лес е...

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 12.03.2003 (Ср) 22:18

Щелчек на заголовке: это событие HeadClick
Код: Выделить всё
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
    MsgBox "header click: ColIndex = " & ColIndex
End Sub


Ну а насчет выбранного, так просто св-во Col
Изображение

Валерий
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 11.03.2003 (Вт) 21:13
Откуда: Кисловодск

sanches

Сообщение Валерий » 24.03.2003 (Пн) 18:32

:P Огромное спасибо. Все работает... :P
Кто не хочет нашего дерева - мы того лес е...

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 13.08.2006 (Вс) 17:45

Прошу прощения, а у меня этот код не работает. Видимо потому, что ByVal ColIndex определен как Integer, а у меня названия колонок текстовые. Хотя, я скорее всего, и не прав.
Моя попытка:

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
Dim Col As String
With Adodc1
If ColIndex = 1 Then
Col = "Title"
Text1.Text = Col
.RecordSource = "SELECT * FROM DB order by Col"
.Refresh
End If
End With

Text1.Text показывает, что Col = Title, но на Refresh высказывает ошибка - не хватает каких-то параметров.

Подскажите, пожалуйста, в чем ошибка?
Спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.08.2006 (Вс) 17:52

var = "Привет"
msgbox "var"


В чём ошибка?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 13.08.2006 (Вс) 20:07

GSerg
Здравствуй, Шаман - Учитель!
Ошибка в том, что набил лишние операции.
Можно проще, через IF

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
Dim Col As String
With Adodc1
If ColIndex = 1 Then
.RecordSource = "SELECT * FROM DB order by Title"
.Refresh
End If
End With
End Sub

и т.д. Всего-то 6 полей - будет 6 IF

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.08.2006 (Вс) 20:22

Код: Выделить всё
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
  adodc1.recordset.sort=datagrid1.columns(colindex).datafield
end sub

Ы?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 13.08.2006 (Вс) 21:02

GSerg
Да уж.....
Могу только завидовать знаниям белой завистью.
Очень уважаю профессионалов!
Спасибо!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList