首页 文章

访问在报告中使用查询

提问于
浏览
1

美好的一天 .

我有一个库存应用程序 . 将项目移入 生产环境 时,需要使用客户名称和产品名称打印票证 . 我创建了一张报告作为报告 . 我使用以下查询作为报告中的记录源,它完全按照我的意愿工作 .

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,但似乎无法正确使用语法 .

有人可以帮助我如何将查询移动到一个程序,使报告动态 .

谢谢

1 回答

  • 1

    OpenArgs 参数只是传递给报告 . 它不会自动用于任何内容,但可在Report事件过程中使用 .

    所以在 Report_Open() 中,您可以这样做:

    Me.RecordSource = Me.OpenArgs
    

    它应该工作 .

    旁注:在最后一行,它应该是 >0 而不是 >"0"

相关问题