如何复制嵌入的图片

时间:2016-03-24 17:52:42

标签: vba ms-access

如何将嵌入的图片复制到新的图像控件?

背景:在运行时,我需要使用两个客户端徽标中的一个作为各种表单上的标头。表单的数量至少为三个,但该数字和徽标选项会根据用户的选择而更改。用户是我无法控制的各种笔记本电脑上的众多销售人员之一,在程序运行时可能有也可能没有网络访问权限。我所知道的是,我们至少拥有Access 2007,或2010,或2013或2016,可能是Windows ...或Mac。 我已经将徽标嵌入到数据库中。

我希望能够CreateControl acImage,将其移至正确的位置然后MyImage.Picture = EmbeddedPicture,但我愿意接受选项。

如何在VBA中引用已嵌入的图片?

1 个答案:

答案 0 :(得分:1)

如果您已经将图片嵌入到数据库中,它将按照图片名称提供给所有控件,您可以使用以下代码在表单上创建新图像:

Dim ctlImage As Image

DoCmd.OpenForm "Form2", acDesign

Set ctlImage = CreateControl("Form2", acImage, acDetail, , , 1000, 1000, 5000, 2000)
ctlImage.Picture = "image001.jpg"

DoCmd.Close acForm, "Form2", acSaveYes

在创建之前,请确保已嵌入图片,并且您可以在具有此属性的任何对象的下拉列表框Picture属性中查看图片文件名。选择" Emabedded"首先在Picture Type属性中。

嵌入图片的最简单方法是选择图片文件并将图片类型更改为嵌入图片。在此之后,图片将被复制到数据库的一个系统表中,并可用于带图片的任何控件。

请注意,为了创建新控件,应在设计模式下打开表单。我建议避免这种情况,因为如果将应用程序编译为accde,此操作将产生错误。

更好的方法是手动创建图片对象,并根据所需图片更改图片属性。您还可以创建几个对象,并使它们在运行时可见/不可见。