Описание
Задает или возвращает значение, указывающее, возвращает ли записи запрос к серверу 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