ms访问动态更改报告上的标签

Posted

技术标签:

【中文标题】ms访问动态更改报告上的标签【英文标题】:ms access dynamically change label on report 【发布时间】:2016-03-11 21:13:54 【问题描述】:

我正在使用以下代码将生产工单打印为报告:

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】:

将颜色属性添加到客户表的表定义中。将该颜色属性添加到表单的记录源。使用该颜色在表单的适当事件处理程序中设置报表上控件的背景色属性,可能是 onChange?

【讨论】:

Access 有点新 - 我会试一试。谢谢 我的边框是一个文本框。我已将 colorAttribute 字段添加到公司表中。我在 Select stmt 中添加了对该字段的引用。当然,我在文本框中得到的只是颜色属性的字符串值。您建议了一个事件处理程序。我不知道要使用哪一个,因为似乎没有合适的代码放入其中(基于我对这些的理解)。文本框没有更改/更新事件。 表单更改事件 请原谅我的无知,但在报告属性表的“事件”选项卡中没有“更改时”选项。我找错地方了吗? 我不知道您的报告的结构,但您应该有一个详细信息部分——当每个详细记录被格式化时,都会触发一个事件,称为 onFormat,并且有一个事件会在何时触发记录被绘制称为 onPaint。

以上是关于ms访问动态更改报告上的标签的主要内容,如果未能解决你的问题,请参考以下文章

如何将 ms 访问报告的详细信息部分分成两页进行打印预览和打印?

编辑默认报告 - MS-Access

如何创建标签文本框,如 html 标签(在 ms 访问表单中)

CALayer 的动态可访问性标签

通过 C# 检查 MS Access 报告中现有标签的宽度

访问帮助以动态确定跨字段的记录日期更改