05. Открыть запросы SELECT базы данных можно по разному. Эти функции показывают, как можно это сделать из разных библиотек.
Option Compare Database
Option Explicit
'==============================================================
' ADO. Использование запросов
Private Sub butADO_Click()
Dim rst As ADODB.Recordset
' Включаем обработку ошибок
On Error GoTo 999
' Создание запроса
Set rst = New ADODB.Recordset
' Заполняем запрос
With rst
.CursorType = adOpenKeyset
.LockType = adLockOptimistic ' Возможно редактирование
.Source = "SELECT * from [Пример 04]"
.Open , CurrentProject.Connection, , , adCmdText
If rst.RecordCount Then
.MoveLast ' Заполнение запроса и расчет кол-ва записей
.MoveFirst ' Начнем с первой записи
Do Until .EOF
' Изменение записей
rst!Описание = "ADO. Пример 05"
rst.Update
rst.MoveNext
Loop
End If
End With
' Отображаем список
Me.myList.RowSource = "ADODB. Изменение сделаны;Всего записей: " Format(rst.RecordCount, "000")
' Конец просмотра
rst.Close
Set rst = Nothing
Exit Sub
999:
MsgBox Err.Description
Err.Clear
End Sub
'==============================================================
' DAO. Использование запросов
Private Sub butDAO_Click()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
' Включаем обработку ошибок
On Error GoTo 999
' Создание запроса
Set dbs = CurrentDb ' Текущая база данных
Set rst = dbs.OpenRecordset("SELECT * from [Пример 04]")
' Заполняем запрос
With rst
If .RecordCount Then
.MoveLast ' Заполнение запроса и расчет кол-ва записей
.MoveFirst ' Начнем с первой записи
For i = 0 To .RecordCount - 1
' Редактирование записей
rst.Edit
rst!Описание = "DAO. Пример 05"
rst.Update
rst.MoveNext
Next
End If
End With
' Отображаем список
Me.myList.RowSource = "DAO. Изменения сделаны;Всего записей: " Format(rst.RecordCount, "000")
' Конец просмотра
rst.Close
Set rst = Nothing
Set dbs = Nothing
Exit Sub
999:
MsgBox Err.Description
Err.Clear
End Sub