使用文本框中的值作为Access中传递查询的参数



我有一个Firebird数据库,在那里我使用了一个名为SP_SALES的存储过程来生成一个相当复杂的销售报告。我现在想使用MS Access将几个DB的销售报告合并为一个报告。在Access中,我创建了一个普通的直通查询,充当链接表,并将为每个数据库执行此操作,从中我可以轻松地合并报告。我现在的问题是,我的存储过程中有FROMDATE和TO DATE参数。因此,我在Access中的直通查询如下:

SELECT * FROM SP_SALES ('2019/01/01' , '2019/12/31')

在提取我的合并报告时,用户应该能够定义FROM DATE和to DATE。所以我创建了一个可以填充的用户表单。用户表单名为frm_CONSOLIDATED_SALES,日期框分别名为txt_FROM_date和txt_TO-date。因此,我将Access查询更改为如下所示:

SELECT * FROM SP_SALES ([Forms]![frm_CONSOLIDATED_SALES][txt_FROM_DATE] , [Forms][frm_CONSOLIDATED_SALES][txt_TO_DATE]) 

然而,在运行查询时,我得到了一个TOKEN UNKNOWN错误。我试图避免在VBA中执行此操作,因为我不知道如何在VBA中进行传递查询。然而,如果我需要走这条路,我们将非常感谢任何帮助。

Firebird在接收传递查询时应该如何了解数据库?除了无效语法之外,它不知道[Forms]![frm_CONSOLIDATED_SALES][txt_FROM_DATE]是关于什么的。

因此,在传递查询之前,将其SQL属性调整为:

SELECT * FROM SP_SALES ('2019/01/01' , '2019/12/31')

使用类似的东西

YourQuery.SQL = "SELECT * FROM SP_SALES ('" & Format([txt_From_Date], "yyyy/mm/dd") & "' , '" & Format([txt_To_Date], "yyyy/mm/dd") & "')"

相关内容

  • 没有找到相关文章

最新更新