ms访问动态更改报告

时间:2016-03-11 21:13:55

标签: ms-access report

我使用以下代码将生产票据打印为报告:

Dim strCriteria As String
 strCriteria = "SELECT [PkgSize] & chr$(32) & [PkgUnit] AS Pkg, tblProducts.ProductID, tblProducts.ProductPrintName, tblProducts.Grade, " _
            & " tblCustomers.CompanyName, tblOrderDetails.ODEPriority, chr$(33) & chr$(70) & [tblProducts].[ProductID] & [tblCustomers].[ID] & chr$(33)as Expr1" _
            & " 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]![frmInventoryTransfersManual]![cboTransferProductID]) " _
            & " AND ((tblOrderDetails.ODEPriority)= " & varPriority & ") AND (([tblOrderDetails]![ODEQtyOrdered]-[tblOrderDetails]![ODEQtyProduced])>0))"

 DoCmd.OpenReport "rptProductPaperLabelTCTRlogo", acViewPreview, , , , strCriteria    

在报告中我有:

Private Sub Report_Open(Cancel As Integer)
    Me.RecordSource = Me.OpenArgs
End Sub

报告中的各个文本框使用以下内容作为其控制来源:Grade,Expr1,ProductPrintName,Pkg和CompanyName。 (Expr1生成用于扫描票证的条形码。)

完美无缺。但是,我还需要打印一个标签,或者可能是一个文本框,以在报告上形成边框。此标签/文本框将是分配给CompanyName的颜色。因此,可以快速查看故障单,并通过了解此标签/文本框的颜色来了解客户是谁。

任何人都可以帮我改变报告上标签/文本框的颜色,具体取决于公司名称。我们有大约20个不同的客户。

1 个答案:

答案 0 :(得分:0)

将颜色属性添加到customer表的表定义中。将该颜色属性添加到表单的记录源。使用该颜色在窗体的相应事件处理程序中设置控件的backcolor属性,可能是onChange?