Private Sub GetData()
Dim CN As ADODB.Connection ' объект Connection является ссылкой на базу данных
Dim RS As ADODB.Recordset ' а это объект Recordset. в нем будет набор записей из таблице в базе
' инициализируем объекты
Set CN = New ADODB.Connection
With CN
.Provider = "Microsoft.Jet.OLEDB.3.51" ' провайдер данных для Access'овских баз данных. если база версии Access 2000, то 3.51 нужно заменить на 4.0
.ConnectionString = "путь до файла бызы данных"
.Open ' открыли бызу
End With
' теперь рекордсет. самое интересное
Set RS = New ADODB.Recordset
With RS
.ActiveConnection = CN ' используемое подключение, следовательно база
.Source = "SELECT * FROM tbl ORDER BY <поле_с_номером_квартиры>" ' это и есть наш запрос. он значит получить все записи из таблицы с именем "tbl" и отсортировать их по указанному полю
.Open , , adKeySet, adReadOnly ' открываем набор записей. так как мы считываем данные, то нам достаточно открыть его только для чтения
' теперь пробегаемся по всем записям и добавляем их в ListBox
Do Until .EOF ' пока не достигним конца
ListBox.AddItem .Fields("<поле_с_номером_квартиры>") & " - " & .Fields("Фамили") & " " & .Fields("Имя")
' если в таблице есть ключевое поле, то можно сделать так
ListBox.ItemData(LisyBox.NewIndex) = .Fields("ID")
' потом можно будет выбирать из таблицы данные щелкая по списку
' следующая запись
.MoveNext
Loop
' все закрываем Recordset и Connection
.Close
End With
Set RS = Nothing
CN.Close
Set CN = Nothing
End Sub
gjghjc писал(а):эта зараза отсортировала точно так же т.е 12, 2, 21, 3 и т.д.![]()
![]()
![]()
![]()
gjghjc писал(а):А вот еще возник вопрос а можно ли в SQL запрос добавить праметр который бы принудительно говорил запросу что сравнивать эти данные нужно как числа, а не как строки.
gjghjc писал(а):Я понял если написать ORDER BY Val(flat) то список будет сортироваться по номерам квартир.
gjghjc писал(а):Тот факт что у номера квартиры или дома может быть еще и буква как то выпал из моего внимания.
gjghjc писал(а):Я понял если написать ORDER BY Val(flat) то список будет сортироваться по номерам квартир.
ORDER BY Val(House) and Val(Flat)
ORDER BY Val(House), Val(Flat)
< 1>
< 2>
...
< 10>
< 11>
...
<999>
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4