Declaração PARAMETERS (Microsoft Access SQL)
Aplica-se ao: Access 2013, Office 2013
Declara o nome e o tipo dos dados de cada parâmetro em uma consulta de parâmetro.
Sintaxe
PARAMETERS name datatype [, name datatype [, …]]
A declaração PARAMETERS contém estas partes:
Sair |
Descrição |
---|---|
name |
O nome do parâmetro. Atribuído à propriedade Name do objeto Parameter e usado para identificar esse parâmetro na coleção Parâmetros. Você pode usar name como uma sequência exibida em uma caixa de diálogo, enquanto o aplicativo executa a consulta. Use colchetes ([ ]) para isolar o texto que contém espaços ou pontuação. Por exemplo, [Baixo preço] e [Iniciar relatório com qual mês?] são argumentos name válidos. |
datatype |
Um dos principais tipos de dados do Microsoft Access SQL ou seus sinônimos. |
Comentários
Para consultas executadas regularmente, você pode usar uma declaração PARAMETERS para criar uma consulta de parâmetro. Uma consulta de parâmetro pode ajudar a automatizar o processo de alteração dos critérios de consulta. Com uma consulta de parâmetro, seu código precisará fornecer os parâmetros cada vez que a consulta for executada.
A declaração PARAMETERS é opcional, mas, quando incluso, precede qualquer outra instrução, incluindo SELECT.
Se a declaração incluir mais de um parâmetro, separe-os com vírgulas. O exemplo a seguir inclui dois parâmetros:
PARAMETERS [Low price] Currency, [Beginning date] DateTime;
Você pode usar name mas não datatype em uma cláusula WHERE ou HAVING. O exemplo a seguir espera que dois parâmetros sejam fornecidos e, em seguida, aplicar os critérios na tabela Pedidos:
PARAMETERS [Low price] Currency,
[Beginning date] DateTime;
SELECT OrderID, OrderAmount
FROM Orders
WHERE OrderAmount > [Low price]
AND OrderDate >= [Beginning date];
Exemplo
Este exemplo exige que o usuário forneça um cargo e use este cargo como critério para a consulta.
Ele é chamado procedimento EnumFields, o qual você pode encontrar no exemplo da instrução SELECT.
Sub ParametersX()
Dim dbs As Database, qdf As QueryDef
Dim rst As Recordset
Dim strSql As String, strParm As String
Dim strMessage As String
Dim intCommand As Integer
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("NorthWind.mdb")
' Define the parameters clause.
strParm = "PARAMETERS [Employee Title] CHAR; "
' Define an SQL statement with the parameters
' clause.
strSql = strParm & "SELECT LastName, FirstName, " _
& "EmployeeID " _
& "FROM Employees " _
& "WHERE Title =[Employee Title];"
' Create a QueryDef object based on the
' SQL statement.
Set qdf = dbs.CreateQueryDef _
("Find Employees", strSql)
Do While True
strMessage = "Find Employees by Job " _
& "title:" & Chr(13) _
& " Choose Job Title:" & Chr(13) _
& " 1 - Sales Manager" & Chr(13) _
& " 2 - Sales Representative" & Chr(13) _
& " 3 - Inside Sales Coordinator"
intCommand = Val(InputBox(strMessage))
Select Case intCommand
Case 1
qdf("Employee Title") = _
"Sales Manager"
Case 2
qdf("Employee Title") = _
"Sales Representative"
Case 3
qdf("Employee Title") = _
"Inside Sales Coordinator"
Case Else
Exit Do
End Select
' Create a temporary snapshot-type Recordset.
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
' Populate the Recordset.
rst.MoveLast
' Call EnumFields to print the contents of the
' Recordset. Pass the Recordset object and desired
' field width.
EnumFields rst, 12
Loop
' Delete the QueryDef because this is a
' demonstration.
dbs.QueryDefs.Delete "Find Employees"
dbs.Close
End Sub