Описание
Обновляет данные в объекте Recordset с помощью повторного выполнения запроса, на котором базируется указанный объект.
наборЗаписей.Requery новыйЗапрос
Параметры
наборЗаписей
Объектная переменная, представляющая в рабочей области ядра Microsoft Jet объект Recordset типа динамического набора записей, статического набора записей или статического набора записей с последовательным доступом или объект Recordset в рабочей области ODBCDirect.
новыйЗапрос
Необязательный. Выражение или переменная типа Variant, представляющая значение свойства Name объекта QueryDef (только в рабочей области ядра Microsoft Jet).
Замечания
Использование данного метода позволяет быть уверенным в том, что объект Recordset содержит самые свежие данные. Данный метод заполняет текущий объект Recordset либо с помощью запроса с текущими параметрами, либо (в рабочей области Microsoft Jet) с использованием параметров запроса, указанного в аргументе новыйЗапрос.
Если в рабочей области ODBCDirect исходный запрос выполнялся в асинхронном режиме, метод Requery также запускает асинхронный запрос.
Если не указать аргумент новыйЗапрос, объект Recordset заполняется с использованием определения запроса и параметров, применявшихся при начальном заполнении объекта Recordset. При повторном заполнении учитываются любые изменения в базовых таблицах. Если объект QueryDef не был использован для создания объекта Recordset, то объект Recordset создается заново.
Если аргумент новыйЗапрос задает исходный объект QueryDef, то объект Recordset обновляется с использованием параметров, указанных в объекте QueryDef. При повторном заполнении учитываются любые изменения в базовых таблицах. Для заполнения объекта Recordset с новыми параметрами запроса необходимо указать другое значение аргумента новыйЗапрос.
Если указать объект QueryDef, отличный от использовавшегося для создания исходного объекта Recordset, то объект Recordset создается заново.
После вызова метода Requery первая запись объекта Recordset становится текущей записью.
Метод Requery нельзя применять к объектам Recordset типа динамических или статических наборов записей, у которых свойство Restartable имеет значение False. Однако если указан необязательный аргумент новыйЗапрос, то свойство Restartable игнорируется.
Если после применения метода Requery оба свойства BOF и EOF объекта Recordset имеют значение True, то в результате выполнения запроса не будет возвращена ни одна запись, и объект Recordset не будет содержать данных.
Пример
Следующая программа демонстрирует использование метода Requery для обновления данных запроса после изменения базового источника данных.
Sub RequeryX() Dim dbsNorthwind As Database Dim qdfTemp As QueryDef Dim rstView As Recordset Dim rstChange As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") Set qdfTemp = dbsNorthwind.CreateQueryDef("", "PARAMETERS ПросмотрСтраны Text; " & _ "SELECT Имя, Фамилия, Страна FROM Сотрудники " & "WHERE Страна = [ПросмотрСтраны] " & _ "ORDER BY Фамилия") qdfTemp.Parameters!ПросмотрСтраны = "USA" Debug.Print "Исходный запрос, " & [ПросмотрСтраны] = USA" Set rstView = qdfTemp.OpenRecordset Do While Not rstView.EOF Debug.Print " " & rstView!Имя & " " & rstView!Фамилия & ", " & rstView!Страна rstView.MoveNext Loop ' Изменение данных. Set rstChange = dbsNorthwind.OpenRecordset("Сотрудники") rstChange.AddNew rstChange!Имя = "Nina" rstChange!Фамилия = "Roberts" rstChange!Страна = "USA" rstChange.Update rstView.Requery Debug.Print "Повторный запрос после изменения источника" Set rstView = qdfTemp.OpenRecordset Do While Not rstView.EOF Debug.Print " " & rstView!Имя & " " & rstView!Фамилия & ", " & rstView!Страна rstView.MoveNext Loop ' Восстанавливает исходные данные, ' измененные для демонстрации. rstChange.Bookmark = rstChange.LastModified rstChange.Delete rstChange.Close rstView.Close dbsNorthwind.Close End Sub