在报表中访问使用查询
Access Use Query in Report
美好的一天。
我有一个库存应用程序。当一个项目投入生产时,需要打印一张带有客户名称和产品名称的票据。我创建了票证作为报告。我使用以下查询作为报告中的记录源,它完全符合我的要求。
SELECT [PkgSize] & " " & [PkgUnit] AS Pkg, tblProducts.ProductID, tblProducts.ProductPrintName,
tblProducts.Grade, tblCustomers.CompanyName, tblOrderDetails.ODEPriority
FROM tblCustomers INNER JOIN (tblOrders INNER JOIN (tblProducts INNER JOIN tblOrderDetails
ON tblProducts.ProductID = tblOrderDetails.ODEProductFK)
ON tblOrders.ORDOrderID = tblOrderDetails.ODEOrderID)
ON tblCustomers.ID = tblOrders.ORDCustomerID
WHERE (((tblProducts.ProductID)=[Forms]![frmInventoryTransfers]![cboTransferProductID])
AND ((tblOrderDetails.ODEPriority)=1)
AND (([tblOrderDetails]![ODEQtyOrdered]-[tblOrderDetails]![ODEQtyProduced])>"0"));
报表打开如下:
DoCmd.OpenReport "rptProductPaperLabelTCTRlogo", acViewPreview
我想做的是将查询移到我的过程中,因为我需要更改某些项目的值。例如,我需要将 ODEPriority 更改为不同的数字,例如 2 或 3,即将其更改为变量。这将触发 ORDCustomerID 发生变化,但不会触发 ProductID。
我已经从查询中创建了一个字符串并尝试了
DoCmd.OpenReport "rptProductPaperLabelTCTRlogo", acViewPreview, , , , Qstring
但我得到了#Name?在所有文本框中。 (我首先从报告中的记录源中删除了查询。)
我曾尝试使用 querydef,但似乎无法获得正确的语法。
谁能帮我解决如何将查询移动到过程中以使报告动态化的问题。
谢谢
OpenArgs
参数只是传递给报表。它不会自动用于任何用途,但在报告事件过程中可用。
所以在Report_Open()
中,你可以这样做:
Me.RecordSource = Me.OpenArgs
它应该可以工作。
旁注:在最后一行,它应该是 >0
而不是 >"0"
美好的一天。
我有一个库存应用程序。当一个项目投入生产时,需要打印一张带有客户名称和产品名称的票据。我创建了票证作为报告。我使用以下查询作为报告中的记录源,它完全符合我的要求。
SELECT [PkgSize] & " " & [PkgUnit] AS Pkg, tblProducts.ProductID, tblProducts.ProductPrintName,
tblProducts.Grade, tblCustomers.CompanyName, tblOrderDetails.ODEPriority
FROM tblCustomers INNER JOIN (tblOrders INNER JOIN (tblProducts INNER JOIN tblOrderDetails
ON tblProducts.ProductID = tblOrderDetails.ODEProductFK)
ON tblOrders.ORDOrderID = tblOrderDetails.ODEOrderID)
ON tblCustomers.ID = tblOrders.ORDCustomerID
WHERE (((tblProducts.ProductID)=[Forms]![frmInventoryTransfers]![cboTransferProductID])
AND ((tblOrderDetails.ODEPriority)=1)
AND (([tblOrderDetails]![ODEQtyOrdered]-[tblOrderDetails]![ODEQtyProduced])>"0"));
报表打开如下:
DoCmd.OpenReport "rptProductPaperLabelTCTRlogo", acViewPreview
我想做的是将查询移到我的过程中,因为我需要更改某些项目的值。例如,我需要将 ODEPriority 更改为不同的数字,例如 2 或 3,即将其更改为变量。这将触发 ORDCustomerID 发生变化,但不会触发 ProductID。
我已经从查询中创建了一个字符串并尝试了
DoCmd.OpenReport "rptProductPaperLabelTCTRlogo", acViewPreview, , , , Qstring
但我得到了#Name?在所有文本框中。 (我首先从报告中的记录源中删除了查询。)
我曾尝试使用 querydef,但似乎无法获得正确的语法。
谁能帮我解决如何将查询移动到过程中以使报告动态化的问题。
谢谢
OpenArgs
参数只是传递给报表。它不会自动用于任何用途,但在报告事件过程中可用。
所以在Report_Open()
中,你可以这样做:
Me.RecordSource = Me.OpenArgs
它应该可以工作。
旁注:在最后一行,它应该是 >0
而不是 >"0"