Описание
Задает или возвращает значение, указывающее, возвращает ли записи запрос к серверу SQL внешней базы данных.
Значение
Задаваемое или возвращаемое значение является выражением типа Boolean и имеет значение True (по умолчанию), если запрос к серверу возвращает записи.
Замечания
Не все запросы к серверу SQL внешней базы данных возвращают записи. Например, инструкция SQL UPDATE обновляет записи и не возвращает записей, в то время как инструкция SQL SELECT возвращает записи. Если запрос возвращает записи, то для свойства ReturnsRecords необходимо задать значение True; если запрос не возвращает записей, следует задать для свойства ReturnsRecords значение False.
Значение свойства Connect должно быть задано до указания значения свойства ReturnsRecords.
Пример
В данном примере с помощью свойств Connect и ReturnsRecords из базы данных на сервере Microsoft SQL Server отбираются пять книг, имеющих максимальные результаты продаж за год. Если обнаруживается совпадение в результатах продаж, размер выводящегося списка увеличивается и выводится сообщение с объяснением причины.
Sub ClientServerX1() Dim dbsCurrent As Database Dim qdfPassThrough As QueryDef Dim qdfLocal As QueryDef Dim rstTopFive As Recordset Dim strMessage As String ' Открывает базу данных, для которой будут ' созданы объекты QueryDef. Set dbsCurrent = OpenDatabase("DB1.mdb") ' Создает запрос к серверу для загрузки данных ' из базы данных Microsoft SQL Server. Set qdfPassThrough = dbsCurrent.CreateQueryDef("ВсеНазвания") qdfPassThrough.Connect = "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers" qdfPassThrough.SQL = "SELECT * FROM titles " & "ORDER BY ytd_sales DESC" qdfPassThrough.ReturnsRecords = True ' Создает временный объект QueryDef для загрузки ' данных из запроса к серверу. Set qdfLocal = dbsCurrent.CreateQueryDef("") qdfLocal.SQL = "SELECT TOP 5 title FROM ВсеНазвания" Set rstTopFive = qdfLocal.OpenRecordset() ' Отображает результаты запросов. With rstTopFive strMessage = "Первые 5 бестселлеров:" & vbCr Do While Not .EOF strMessage = strMessage & " " & !Title & vbCr .MoveNext Loop If .RecordCount > 5 Then strMessage = strMessage & "(В списке " & vbCr & .RecordCount & " книг, так как несколько имеют одинаковые результаты)" End If MsgBox strMessage .Close End With ' Удаляет новый запрос к серверу, созданный только для ' демонстрации. dbsCurrent.QueryDefs.Delete "ВсеНазвания" dbsCurrent.Close End Sub