在MS Access中修改已关闭的报告?

时间:2011-11-23 19:20:44

标签: ms-access vba access-vba ms-access-2003

是否可以修改已关闭的报告?

REPORTS![PIC Sheet]!BoundImage.Picture = "\\Image\Path"

此报告永远不会打开。 它仅用于打印。

DoCmd.OpenReport stDocName, , , "[Item #]= " Me.ItemNumber

我需要一种基于ItemNumber更改boundImage的方法。

2 个答案:

答案 0 :(得分:1)

以下是我通常处理报告图像的方法。还有其他方法可以实现相同的目标,但我发现这个方法非常灵活,非常简单。

1)在Item表中,将文件路径存储到您要用于该项目的图像。例如,项目#1 ImagePath字段将是\ Image \ Item1.jpg或者您希望处理它。

2)将此图像文件路径信息传递到报告查询中。

3)创建一个隐藏的文本框来存储报告的文件路径,将其命名为txt_ImgPath或类似的东西

4)假设图像位于“详细信息”部分,您将向“Detail_Print”打印事件添加一些绑定代码。这会动态地将图片的路径属性更改为您指定的属性。如果不存在文件路径,则隐藏图像控件。

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
'binds the path to the picture object

    If Len(Me.txt_ImgPath.Value) > 0 Then
        Me.img_Item.Picture = Me.txt_ImgPath.Value
        Me.img_Item.Visible = True
    Else
        Me.img_Item.Visible = False
    End If
End Sub

如果您确实需要从报表对象更改它,则可能会提供更多洞察力。我从来没有这么做过。

答案 1 :(得分:0)

DoCmd.OpenReport stDocName, acViewPreview, , "[Item #]= " Me.ItemNumber

If Dir("\\Image\Path") = "" Then

    REPORTS![stDocName]!BoundImage.Picture = "\\Image\NoImageExists.jpg"

Else

    REPORTS![stDocName]!BoundImage.Picture = "\\Image\Path"

End If

DoCmd.PrintOut
DoCmd.Close acReport, stDocName