从Access导出图标图像的最佳方法?

时间:2019-01-23 11:18:34

标签: vba ms-access

我在Access窗体上有大约50个图标图像(.ico),但是我没有将它们存储在磁盘上。我想将它们从Access导出到磁盘位置。

我在此线程上尝试了建议的解决方案:

Access - Export images from Image controls in forms

我无法打开生成的文件,可能是因为我的图像是(.ico)而不是(.png)

编辑:我能够将图标复制到绘画中,将它们另存为png,然后使用在线转换器将其转换为图标。很耗时,但是可以。

2 个答案:

答案 0 :(得分:0)

您可以使用此代码打击。

它将所提供表单的所有图像控件的内容保存到同一文件夹中的文件中。

请注意,某些图像控件包含“奇怪的”二进制格式,可能无法用每种工具正确显示。

导出后,您还必须小心分配正确的文件扩展名。

将代码放置在新模块中,然后在设计视图中打开表单并按如下方式调用它:SaveAllImageControls Forms("MyForm")

Public Sub SaveAllImageControls(ByRef sourceForm As Form)
    Dim item As control
    For Each item In sourceForm.Controls: Do
        If item.ControlType <> acImage Then Exit Do
        If IsNull(item.PictureData) Then Exit Do

        Dim bArray() As Byte
        bArray = item.PictureData

        Dim filename As String
        filename = Application.CurrentDb.Name & "-" & sourceForm.Name & "-" & item.Name & ".binary"

        Dim fileNumber As Integer
        fileNumber = FreeFile

        Open filename For Binary As fileNumber
        Put fileNumber, , bArray
        Close fileNumber
    Loop While False: Next item
End Sub

答案 1 :(得分:0)

最简单的解决方案可能是导出所有ico文件,然后使用ImageMagick处理它们。您可以运行类似

convert image.ico image.png

作为您链接的代码的一部分,或者作为命令提示符中的简单一次调用。