Propriedade QueryDef.ReturnsRecords (DAO)
Aplica-se ao: Access 2013, Office 2013
Define ou retorna um valor que indica se uma consulta passagem SQL para um banco de dados externo retornará registros (somente em espaços de trabalho do Microsoft Access).
Sintaxe
expressão . ReturnsRecords
expressão Uma variável que representa um objeto QueryDef.
Comentários
Nem todas as consultas passagem SQL para bancos de dados externos retornam registros. Por exemplo, uma instrução SQL UPDATE atualiza registros sem retornar registros, enquanto uma instrução SQL SELECT retorna registros. Se a consulta retornar registros, defina a propriedade ReturnsRecords como True; se a consulta não retornar registros, defina a propriedade ReturnsRecords como False.
Observação
[!OBSERVAçãO] Você deve definir a propriedade Connect antes de definir a propriedade ReturnsRecords.
Exemplo
Este exemplo usa as propriedades Connect e ReturnsRecords para selecionar os títulos dos cinco livros mais vendidos de um banco de dados do Microsoft SQL Server baseado em quantias de vendas do ano até a data. No caso de ocorrer uma correspondência exata nas quantias de vendas, o exemplo aumenta o tamanho da lista exibindo os resultados da consulta e imprime uma mensagem explicando porque isso aconteceu.
Sub ClientServerX1()
Dim dbsCurrent As Database
Dim qdfPassThrough As QueryDef
Dim qdfLocal As QueryDef
Dim rstTopFive As Recordset
Dim strMessage As String
' Open a database from which QueryDef objects can be
' created.
Set dbsCurrent = OpenDatabase("DB1.mdb")
' Create a pass-through query to retrieve data from
' a Microsoft SQL Server database.
Set qdfPassThrough = _
dbsCurrent.CreateQueryDef("AllTitles")
' Note: The DSN referenced below must be set to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
qdfPassThrough.Connect = _
"ODBC;DATABASE=pubs;DSN=Publishers"
qdfPassThrough.SQL = "SELECT * FROM titles " & _
"ORDER BY ytd_sales DESC"
qdfPassThrough.ReturnsRecords = True
' Create a temporary QueryDef object to retrieve
' data from the pass-through query.
Set qdfLocal = dbsCurrent.CreateQueryDef("")
qdfLocal.SQL = "SELECT TOP 5 title FROM AllTitles"
Set rstTopFive = qdfLocal.OpenRecordset()
' Display results of queries.
With rstTopFive
strMessage = _
"Our top 5 best-selling books are:" & vbCr
Do While Not .EOF
strMessage = strMessage & " " & !Title & _
vbCr
.MoveNext
Loop
If .RecordCount > 5 Then
strMessage = strMessage & _
"(There was a tie, resulting in " & _
vbCr & .RecordCount & _
" books in the list.)"
End If
MsgBox strMessage
.Close
End With
' Delete new pass-through query because this is a
' demonstration.
dbsCurrent.QueryDefs.Delete "AllTitles"
dbsCurrent.Close
Este exemplo usa a propriedade ReturnsRecords e a propriedade LogMessages personalizada para criar uma consulta passagem que retornará os dados e todas as mensagens gerados pelo servidor remoto.
Sub LogMessagesX()
Dim wrkAcc As Workspace
Dim dbsCurrent As Database
Dim qdfTemp As QueryDef
Dim prpNew As Property
Dim rstTemp As Recordset
' Create Microsoft Access Workspace object.
Set wrkAcc = CreateWorkspace("", "admin", "", dbUseJet)
Set dbsCurrent = wrkAcc.OpenDatabase("DB1.mdb")
' Create a QueryDef that will log any messages from the
' server in temporary tables.
Set qdfTemp = dbsCurrent.CreateQueryDef("NewQueryDef")
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
qdfTemp.Connect = _
"ODBC;DATABASE=pubs;DSN=Publishers"
qdfTemp.SQL = "SELECT * FROM stores"
qdfTemp.ReturnsRecords = True
Set prpNew = qdfTemp.CreateProperty("LogMessages", _
dbBoolean, True)
qdfTemp.Properties.Append prpNew
' Execute query and display results.
Set rstTemp = qdfTemp.OpenRecordset()
Debug.Print "Contents of recordset:"
With rstTemp
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
.Close
End With
' Delete new QueryDef because this is a demonstration.
dbsCurrent.QueryDefs.Delete qdfTemp.Name
dbsCurrent.Close
wrkAcc.Close
End Sub