【问题标题】:Using VBA to set the parameters of a query使用 VBA 设置查询的参数
【发布时间】:2012-04-09 16:04:06
【问题描述】:

所以我有一个查询,如下所示,它在一个参数上运行。

我想知道是否有办法使用 VBA 来设置查询参数。我目前有大约 40 个查询,除了产品 ID 之外都完全相同,因此我也有 40 个报告……如果我有一个查询,我仍然需要在 VBA 中写出 productid 的代码,但我可以使用一份报告而不是那么多。

只需一个查询和一份报告,并让 VBA 设置参数,生活会轻松得多,因为用户不知道产品 ID

SELECT TblTotalSale.ProductID, TblProduct.Description, TblTotalSale.Size, TblTotalSale.SalePrice, TblTotalSale.Day
FROM TblProduct INNER JOIN TblTotalSale ON TblProduct.ProductID = TblTotalSale.ProductID
WHERE (((TblTotalSale.ProductID)=[]));

VBA

Private Sub IPA_Click()

DoCmd.OpenReport "RptProduct", acViewReport, , [TblTotalSale.ProductID="5"]

End Sub

我也试过 tblTotalSale.ProductID = "5" 我知道我正在使用 SQL,而我应该使用 VBA...

谢谢

山姆

【问题讨论】:

    标签: sql ms-access vba


    【解决方案1】:

    不要为报表和表单的 sql 语句包含参数。使用 DoCmd 对象的 OpenForm 或 OpenReport 方法的 Where 参数。

    DoCmd.OpenReport Method

    【讨论】:

    • 所以删除 SQL 和 VBA 中的 where 写入 DoCmd.OpenReport "RptProduct", acViewReport, , TblTotalSale.ProductID=5 ?
    • 带引号 "TblTotalSale.ProductID=5" 或文字,"AText='ABC'"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多