Access 2003完整教程:创建并使用参数查询 (ADP)

使用现有的存储过程或内嵌用户定义函数创建参数查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”按钮图像,再单击要打开的存储过程或内嵌用户定义函数,然后单击数据库窗口工具栏上的“设计”。
  2. 执行下列一项或多项操作:
    • 在要提示为其输入值的每列的“条件”单元格中,键入已命名的参数,中间不嵌入空格,而前面带有 at 符号 (@)。如下例所示:

      @Enter_Customer

    • 在“列”单元格中,以计算列表达式形式,输入命名参数,如下例所示:

      Price * @Enter_Discount

  3. 若要更改参数的数据类型,请在“查询设计器”的“设计”网格中单击鼠标右键,选择快捷菜单中的“属性”,然后单击“存储 Procedure 参数”或“Function 参数”选项卡。

    如果要进行计算,则更改数据类型,并要确保该参数为数字数据类型,如int或money。如果键入了文本数据类型,请使用短窗体来指定文本长度,例如nvarchar(50)或char(100)。

  4. 若要更改默认的参数,则在“查询设计器”中单击鼠标右键,从快捷菜单中选择“属性”,然后单击“存储 Procedure 参数”或“Function 参数”选项卡。输入的值将作为默认值输入。例如,如果输入了参数默认值“CA”,运行具有下列 SQL 语句的参数查询:

    SELECT * from authors WHERE state = @state

    参数查询会将 CA 作为参数默认值输入,而不提示用户输入参数。

  5. 单击“保存”按钮图像,保存该存储过程或内嵌用户定义函数。

  6. 运行参数查询,以验证其功能正常。

    操作方法:

    1. 请执行下列操作之一:
      • 在“数据库”窗口中,单击“对象”下的“查询”按钮图像,单击要运行的参数查询,再单击数据库窗口工具栏上的“打开”。
      • 在“查询设计器”中,单击“运行”按钮图像以运行参数查询。

      Access 会为查询中的每个参数都显示一个“输入参数值”对话框。

    2. 对于每个提示您输入的参数值,执行下列操作之一:
      • 若要输入一个参数值,请键入该值。
      • 若要输入默认值,请选择<DEFAULT>
      • 若要输入一个Null值,请选择<NULL>
      • 若要输入一个零长度字符串或空字符串,请将该框留空。

    注释不能将视图作为参数查询运行或创建。

将存储过程或内嵌用户定义函数的参数查询用作窗体或报表的记录源

在将存储过程或内嵌用户定义函数参数查询用作窗体或报表的记录源时,可以执行以下两项操作之一:

为实现此目的,应使用窗体或报表上的“输入参数”属性,该属性可以将存储过程或内嵌用户定义函数中的命名参数,映射到引用窗体或报表中字段控件的表达式。

例如,如果有个参数查询使用以下命名参数:

SELECT State, SalesYear from Orders WHERE Orders.State = @EnterState AND [email protected]

可如下设置“输入参数”属性:

@State char=[Form]![StateList], @SalesYear smallint=[Enter year of interest]

对于第一个参数,Access 将 @State 参数设为 StateList 控件的当前值。对于第二个参数,Access 提示用户输入 @SalesYear 参数的值。如果还有应用于该存储过程或内嵌用户定义函数的任何其他参数未列在该列表中,则会为其分配默认值。

在窗体或报表的 SQL 语句中创建并运行参数查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”按钮图像,单击要打开的窗体或报表,然后单击“数据库”窗口工具栏上的“设计”。
  2. 在“数据库”窗口中,单击包含要添加参数的 SQL 语句的窗体或报表,并在“设计”视图中打开它。
  3. 双击窗体选择器或报表选择器打开属性表。
  4. 单击“记录源”属性旁的“生成”按钮按钮图像以打开查询。
  5. 将要搜索的列或表达式添加到“网格”窗格。
  6. 定位到包含要搜索的数据列或表达式的行,然后在“条件”网格列中,键入问号 (?)。

当将 SQL SELECT 语句参数查询用作窗体或报表的记录源时,可以执行以下两项操作之一:

为实现此目的,应使用窗体或报表上的“输入参数”属性,该属性可以将 SQL SELECT 语句中的未命名参数,映射到引用窗体或报表中字段控件的表达式。

例如,如果有个 SQL SELECT 语句参数查询,使用以下未命名参数:

SELECT State, SalesYear from Orders WHERE Orders.State = ? AND Orders.SalesYear?= ?

可以如下设置“输入参数”属性:

char=[Form]![StateList], @SalesYear smallint=[Enter year of interest]

对于第一个参数,Access 将 @State 参数设为 StateList 控件的当前值。对于第二个参数,Access 提示用户输入 @SalesYear 参数的值。如果该 SQL SELECT 语句中还有任何其他参数,则会为这些参数分配默认值。

上页:Access 2003完整教程:创建“自动查阅”查询 (MDB) 下页:Access 2003完整教程:使用宏验证数据

Access 2003完整教程:创建并使用参数查询 (ADP)

Access 2003完整教程:使用宏验证数据Access 2003完整教程:以编程方式验证数据
Access 2003完整教程:使用事件过程验证数据Access 2003完整教程:查看 Access 文件的属性
Access 2003完整教程:查看、刷新或更改链接表的文件名和路径 (MDB)Access 2003完整教程:查看或编辑索引 (MDB)
Access 2003完整教程:查看现有的关系 (MDB)Access 2003完整教程:查看数据库对象的列表
Access 2003完整教程:查看、修改或复制查询的 SQL 语句 (MDB)Access 2003完整教程:关于已安装的模板和加载项的警告
Access 2003完整教程:关于自定义表 (MDB)Access 2003完整教程:关于处理数据表中的数据
Access 2003完整教程:创建事件过程Access 2003完整教程:创建自定义 Sub 过程
Access 2003完整教程:创建自定义函数Access 2003完整教程:安装并配置 SQL Server 2000 Desktop Engine
Access 2003完整教程:用于“帮助”的键Access 2003完整教程:在子数据表中使用快捷键导航
Access 2003完整教程:在查询中将表的组合框显示为文本框 (MDB)Access 2003完整教程:关于子数据表
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号