MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Fotos em fomulário continuo Access 2003

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7998
    Registrado : 15/03/2013

    Fotos em fomulário continuo Access 2003   Empty Fotos em fomulário continuo Access 2003

    Mensagem  Alvaro Teixeira 14/6/2015, 11:53

    Olá,  partilho exemplo de mostrar imagens em formulário corrido no Access 2003.
    A partir de uma dúvida aqui do fórum e com ajuda dos colegas sergiosdl e Noobezinho, conseguimos contornar a situação.
    Conforme é recomendado, nunca se armazena imagens na base de dados, pois podemos facilmente chegar ao limite de 2GB. No caso do colega tinha apenas o caminho e nome do ficheiro de imagem.
    Verificamos que se a imagem estiver num campo OLE armazenada, assim já funcionava no formulário continuo.
    Então a solução foi criar um ficheiro temporário para armazenar apenas as imagens desejadas para o formulário.
    O ficheiro temporário é criado na pasta %TEMP% e ligado ao Front_End para não “inchar” e termos que estar sempre a compactar o Front_End.

    No anexo tem 3 exemplos:
    ImgensForm2003bmp – Como os ficheiros jpg, gif, png não mostrava no formulário continuo, foi necessário converter para formato BMP antes de importar para a tabela.

    ImgensForm2003pe – Este será o exemplo que recomendo, faz a importação directamente para a tabela temporária, no entanto é necessária a instalação prévia do Microsoft Photo Editor para que funcione.
    Podem obter através deste LINK ,no meu caso não instalei o Patch.

    ImgensTabela2003pe – Este exemplo, apesar de não recomendado, mas pode ser necessário para situações pontuais (exemplo logotipo de entidade, etc). Armazena a imagem num campo OLE da base de dados.
    Também é necessária a instalação prévia do Microsoft Photo Editor para que funcione.

    Abraço

    Tópico de origem:
    Anexos
    Fotos em fomulário continuo Access 2003   AttachmentExemploImgensFormV3.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (136 Kb) Baixado 588 vez(es)
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    Fotos em fomulário continuo Access 2003   Empty Re: Fotos em fomulário continuo Access 2003

    Mensagem  Clebergyn 12/7/2022, 03:39

    Bom dia, só para contribuição, tentem esse código abaixo:

    Código:

    Public Enum wiaFormat
        BMP = 0
        GIF = 1
        JPEG = 2
        PNG = 3
        TIFF = 4
    End Enum
     
    '---------------------------------------------------------------------------------------
    ' Procedure : WIA_ConvertImage
    ' Author    : Daniel Pineault, CARDA Consultants Inc.
    ' Website   : http://www.cardaconsultants.com
    ' Purpose   : Convert an image's format using WIA
    ' Copyright : The following is release as Attribution-ShareAlike 4.0 International
    '             (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/
    ' Req'd Refs: Uses Late Binding, so none required
    '
    ' Windows Image Acquisition (WIA)
    '             https://msdn.microsoft.com/en-us/library/windows/desktop/ms630368(v=vs.85).aspx
    '
    ' Input Variables:
    ' ~~~~~~~~~~~~~~~~
    ' sInitialImage : Fully qualified path and filename of the original image to resize
    ' sOutputImage  : Fully qualified path and filename of where to save the new image
    ' lFormat       : Format to convert the image into
    ' lQuality      : Quality level to be used for the conversion process (1-100)
    '
    ' Usage:
    ' ~~~~~~
    ' Call WIA_ConvertImage("C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg", _
    '                       "C:\Users\MyUser\Desktop\Chrysanthemum_2.jpg", _
    '                       JPEG)
    '
    ' Revision History:
    ' Rev       Date(yyyy/mm/dd)        Description
    ' **************************************************************************************
    ' 1         2017-01-18              Initial Release
    ' 2         2018-09-20              Updated Copyright
    '---------------------------------------------------------------------------------------
    Public Function WIA_ConvertImage(sInitialImage As String, _
                                     sOutputImage As String, _
                                     lFormat As wiaFormat, _
                                     Optional lQuality As Long = 85) As Boolean
        On Error GoTo Error_Handler
        Dim oWIA                  As Object    'WIA.ImageFile
        Dim oIP                   As Object    'ImageProcess
        Dim sFormatID             As String
        Dim sExt                  As String
     
        'Convert our Enum over to the proper value used by WIA
        Select Case lFormat
            Case 0
                sFormatID = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"
                sExt = "BMP"
            Case 1
                sFormatID = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}"
                sExt = "GIF"
            Case 2
                sFormatID = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
                sExt = "JPEG"
            Case 3
                sFormatID = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"
                sExt = "PNG"
            Case 4
                sFormatID = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}"
                sExt = "TIFF"
        End Select
     
        If lQuality > 100 Then lQuality = 100
     
        'Should check if the output file already exists and if so,
        'prompt the user to overwrite it or not
     
        Set oWIA = CreateObject("WIA.ImageFile")
        Set oIP = CreateObject("WIA.ImageProcess")
     
        oIP.Filters.Add oIP.FilterInfos("Convert").FilterID
        oIP.Filters(1).Properties("FormatID") = sFormatID
        oIP.Filters(1).Properties("Quality") = lQuality
     
        oWIA.LoadFile sInitialImage
        Set oWIA = oIP.Apply(oWIA)
        'Overide the specified ext with the appropriate one for the choosen format
        oWIA.SaveFile Left(sOutputImage, InStrRev(sOutputImage, ".")) & LCase(sExt)
        WIA_ConvertImage = True
     
    Error_Handler_Exit:
        On Error Resume Next
        If Not oIP Is Nothing Then Set oIP = Nothing
        If Not oWIA Is Nothing Then Set oWIA = Nothing
        Exit Function
     
    Error_Handler:
        MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
               "Error Number: " & Err.Number & vbCrLf & _
               "Error Source: WIA_ConvertImage" & vbCrLf & _
               "Error Description: " & Err.Description & _
               Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
               , vbOKOnly + vbCritical, "An Error has Occurred!"
        Resume Error_Handler_Exit
    End Function

    Resolveu a minha dúvida neste tópico.

      Data/hora atual: 9/12/2024, 03:33