参数对象 (DAO)
适用于:Access 2013、Office 2013
Parameter 对象代表提供给查询的值。 此参数与从参数查询创建的 QueryDef 对象关联。
备注
使用 Parameter 可以更改经常运行的 QueryDef 对象中的参数,而不必重新编译查询。
使用 Parameter 对象的属性,可以设置能够在运行查询之前更改的查询参数。 您可以进行下列操作:
使用 Name 属性返回参数的名称。
使用 Value 属性设置或返回需要在查询中使用的参数值。
使用 Type 属性返回 Parameter 对象的数据类型。
使用 Direction 属性设置或返回参数是输入参数、输出参数还是此两者的信息。
示例
以下示例通过创建一个临时 QueryDef,并基于对 QueryDef 对象的 Parameters 所做的更改检索数据,来演示 Parameter 对象和 Parameters 集合。 若要使该过程运行,需要使用 ParametersChange 过程。
Sub ParameterX()
Dim dbsNorthwind As Database
Dim qdfReport As QueryDef
Dim prmBegin As Parameter
Dim prmEnd As Parameter
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Create temporary QueryDef object with two
' parameters.
Set qdfReport = dbsNorthwind.CreateQueryDef("", _
"PARAMETERS dteBegin DateTime, dteEnd DateTime; " & _
"SELECT EmployeeID, COUNT(OrderID) AS NumOrders " & _
"FROM Orders WHERE ShippedDate BETWEEN " & _
"[dteBegin] AND [dteEnd] GROUP BY EmployeeID " & _
"ORDER BY EmployeeID")
Set prmBegin = qdfReport.Parameters!dteBegin
Set prmEnd = qdfReport.Parameters!dteEnd
' Print report using specified parameter values.
ParametersChange qdfReport, prmBegin, #1/1/95#, _
prmEnd, #6/30/95#
ParametersChange qdfReport, prmBegin, #7/1/95#, _
prmEnd, #12/31/95#
dbsNorthwind.Close
End Sub
Sub ParametersChange(qdfTemp As QueryDef, _
prmFirst As Parameter, dteFirst As Date, _
prmLast As Parameter, dteLast As Date)
' Report function for ParameterX.
Dim rstTemp As Recordset
Dim fldLoop As Field
' Set parameter values and open recordset from
' temporary QueryDef object.
prmFirst = dteFirst
prmLast = dteLast
Set rstTemp = _
qdfTemp.OpenRecordset(dbOpenForwardOnly)
Debug.Print "Period " & dteFirst & " to " & dteLast
' Enumerate recordset.
Do While Not rstTemp.EOF
' Enumerate Fields collection of recordset.
For Each fldLoop In rstTemp.Fields
Debug.Print " - " & fldLoop.Name & " = " & fldLoop;
Next fldLoop
Debug.Print
rstTemp.MoveNext
Loop
rstTemp.Close
End Sub