InputParameters 属性
可以使用 InputParameters(输入参数)属性来指定或确定向窗体或报表的 RecordSource 属性的 SQL 语句中或者向 Microsoft access 项目 (.adp) 中作为记录源的存储过程中传递的输入参数。
设置
<name> <type> = <expression> [,<name> <type> = <expression> ] ...
InputParameters 具有以下参数:
参数 说明
name 参数的名称,如果是存储过程参数,要求以“@”符号开头。参数名中不允许含有空格。
type 参数的 SQL Server 数据类型。
expression Microsoft access 表达式,该表达式将传递到要解析的表达式服务。与其他表达式相类似,它可以引用窗体上的其他控件;可以为用户输入提供提示文本;也可以是原义文字。
如果符号“=”后没有跟随文字或直接跟随逗号,使用如同查询或在 CREATE PROC 命令中定义的默认参数值,执行过程。如果参数没有在字符串中列出,也是这样。
可以通过使用属性表或 Visual Basic 来设置此属性。
说明
当使用 RecordSource 属性时:
用于在 RecordSource 属性的 SQL 语句中使用下列语法的 InputParameter 属性字符串的示例。
state char=[Form]![状态列表], salesyear smallint=[输入年度利息]
将产生设置为“状态列表”控件当前值的状态参数,提示用户输入 salesyear 参数。如果存在不在此列表中的其他参数,这些参数可以获得默认值。
对于在 InputParameter 列表中的每个非默认参数,应该使用 ? 号执行查询。
access 中的刷新或重新查询命令(通过菜单、键盘或浏览工具栏)将触发查询的重新执行。用户可以通过调用标准的 Recordset.Requery 方法在代码中完成此操作。如果参数的值是与窗体上的控件绑定的,在重新查询时使用控件的当前值。当控件的值更改时,不自动重新执行查询。
当使用存储过程时:
一个在存储过程中使用 InputParameter 属性字符串示例如下:
@state char=[Form]![状态列表], @salesyear smallint=[输入年度利息]
结果是将 @state 参数设置为“状态列表”控件的当前值,并且用户得到输入 @salesyear 参数的提示。如果存在未列出的存储过程的其他参数,这些参数将被赋予默认值。
存储过程应该用包含 {call } 语法的命令字符串来执行,并且在语法中,对 InputParameter 列表中的每一个非默认参数使用一个 ? 号来表示。
access 中的刷新或再次查询命令(通过菜单,键盘,或定位栏)将触发存储过程的重新执行。用户可以在代码中通过调用标准 Recordset.Requery 方法来实现此操作。如果参数值与窗体上的控件绑定,在再次查询时使用控件的当前值。当控件的值更改时,存储过程不会自动地重执行。
如果存储过程具有参数,那么当首次选择存储过程作为窗体的记录源时,将激发此生成器对话框。在最初创建 InputParameters 字符串以后,同一对话框也将被用作更改字符串的生成器。在此情况下,不考虑参数列表是从字符串中何处取出的。
在使用 ActiveX 数据对象 (ADO) 的 Command 和 Parameter 对象的代码中也可以设置参数值。如果返回的是结果集,通过设置窗体的 Recordset 属性,可以将窗体与结果绑定。ADO 代码只是处理不返回结果集(如:操作查询);返回输出参数;返回多个结果集的存储过程的唯一方法。