Access - Export images from Image controls in forms

前端 未结 4 802
广开言路
广开言路 2021-01-15 05:08

I have been searching for a way to extract images from access forms. A search on Google will nearly always point to OLEtoDisk. This software allows to export images stor

相关标签:
4条回答
  • 2021-01-15 05:24
    1. Take your form that has a background image or AutoFormat that you like
    2. Right-click on the form in the Navigation Pane and select Export >> XML
    3. On the first page of the wizard, select a destination to drop some files (Desktop is fine)
    4. A small dialog will then appear with three check boxes
    5. Select the first option (Data) and third option (Presentation) and then click OK
    6. Click the Close button on the last page of the wizard after the export is complete
    0 讨论(0)
  • 2021-01-15 05:34

    If you are looking to re-use the image in another access database (ie you lost the original image file, but want to use it elsewhere), a far easier method would be to import the object (form, report etc) into your new Access database using the External Data -> Access menu.

    You can then just copy paste the image control where you want to use it...

    Unfortunately copy/paste of image controls between Access databases doesnt work as you'd like.

    0 讨论(0)
  • 2021-01-15 05:42

    The picture data is an EMF file, with a wrapper of 8 bytes. This is your routine modified to use the correct file extension

    Public Function savePict(pImage As Access.Image)
        Dim fname As String 'The name of the file to save the picture to
        Dim iFileNum As Double
        Dim bArray() As Byte, cArray() As Byte
        Dim lngRet As Long
    
        fname = Environ("Temp") + "\temp.emf" ' Destination file path
        iFileNum = FreeFile 'The next free file from the file system
    
        ' Resize to hold entire PictureData prop
        ReDim bArray(LenB(pImage.PictureData) - 1)
        ' Resize to hold the EMF wrapped in the PictureData prop
        ReDim cArray(LenB(pImage.PictureData) - (1 + 8))
        ' Copy to our array
        bArray = pImage.PictureData
        For lngRet = 8 To UBound(cArray) 
            cArray(lngRet - 8) = bArray(lngRet)
        Next
    
        Open fname For Binary Access Write As iFileNum
        'Write the byte array to the file
        Put #iFileNum, , cArray
        Close #iFileNum
    End Function
    
    0 讨论(0)
  • 2021-01-15 05:46

    Finally here is the code that worked as intended : Export a PNG image from a form's Image control.

    Public Function savePict(pImage As Access.Image)
        Dim fname As String 'The name of the file to save the picture to
        fname = Environ("Temp") + "\temp.png" ' Destination file path
    
        Dim iFileNum As Double
        iFileNum = FreeFile 'The next free file from the file system
    
        Dim pngImage As String 'Stores the image data as a string
        pngImage = StrConv(pImage.PictureData, vbUnicode) 'Convert the byte array to a string
    
        'Writes the string to the file
        Open fname For Binary Access Write As iFileNum
            Put #iFileNum, , pngImage
        Close #iFileNum
    End Function
    
    0 讨论(0)
提交回复
热议问题