MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Eduardo Augusto
    Eduardo Augusto
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 01/01/2016

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  Eduardo Augusto em 2/5/2019, 12:52

    Olá, amigos.

    Após muita labuta (e muita leitura das postagens deste maravilhoso fórum), consegui terminar uma rotina em VBA que gera um QRCode de uma hash com assinatura digital.
    O código QRCode é salvo automaticamente numa pasta apropriada, no formato jpg com denominação única).

    Código:

    Function fncGerarQR(ByVal strSelo As String) As Boolean

        FileName = "R" & sv & "-" & Format$(Me.nº, "000000") & "(" & Me.pág & ").jpg"
        sURL = "http://api.qrserver.com/v1/create-qr-code/?size=200x200&data=" & Me.HashAssinada
        PastaRede = "\\servidor\Sistema\QRCode\QRCode-R" & sv & "\" & FileName
        lngRetVal = URLDownloadToFile(0, sURL, PastaRede, 0, 0)
        If lngRetVal = 0 And Dir(PastaRede) <> vbNullString Then fncGerarQR = True
        
    End Function

    Funcionou perfeitamente (fiquei muito feliz), mas acabei emperrando na parte que eu julgava ser a mais simples de todas: usar (automaticamente) a imagem!
    Não estou sabendo como buscar a imagem na pasta para inserir em um relatório (e, talvez, no formulário).
    Em princípio, não pretendo inserir a imagem em uma tabela para não sobrecarregar o back-end, deixando todas elas organizadas em pastas de fácil acesso para o sistema (aceito ser convencido da inserção das imagens no banco de dados).

    Preciso apenas da linha do código VBA que insira automaticamente a imagem jpg (no evento "click" do botão gerador do relatório ou do evento "ao atualizar" do gerador do QRCode - tanto faz) num determinado campo do relatório/formulário (quer essa imagem esteja ou não inserida em uma tabela).
    Tentei usar um controle "link" (que nunca havia experimentado antes), mas não encontrei o local da caixa de propriedades em que fica armazenado o conteúdo do link para poder compreender sua lógica para, assim, criar uma rotina de criação/modificação de seu conteúdo (pois preciso mudar o nome da pasta - são 9 pastas, uma para cada "especialidade" - e o nome do arquivo - cada imagem um nome específico ligado ao número do registro).

    Agradeço por qualquer foco de luz!
    (Access 2016 - Win10 64b)

    Obrigado.
    Eduardo Augusto


    Última edição por Eduardo Augusto em 6/5/2019, 16:36, editado 1 vez(es)
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 893
    Registrado : 22/11/2016

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  IvanJr. em 2/5/2019, 23:47

    para inserir uma imagem no controle do tipo imagem seria
    Código:
    me!NomeDoSeuControle.picture = CaminhoCompletoDaImagem.jpg


    .................................................................................
    Sempre tente entender o código, não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Eduardo Augusto
    Eduardo Augusto
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 01/01/2016

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  Eduardo Augusto em 6/5/2019, 16:29

    Prezado Ivan Jr:

    Obrigado pela dica.
    Na alegria de ver o código funcionando num primeiro momento, precipitei-me e dei por resolvida a questão (acho que consegui reverter o quadro).
    Isso porque, logo depois, percebi que o ponto x da questão ainda continua me assombrando.
    Repetindo que eu já disse (e vc sugeriu exatamente nessa linha), não pretendo incluir a imagem numa tabela, mas apenas num controle do formulário.
    No entanto, eu preciso que o conteúdo desse controle esteja ligado a um registro (apenas a ele), pois haverá uma imagem diversa (um QRCode) para cada registro e, da forma por vc sugerida, a imagem gerada por um registro fica padronizada no formulário em todos os registros, inclusive substituindo a imagem anteriormente gerada por outro registro (como se fosse uma logomarca da empresa, enfeitando o formulário).
    Como eu poderia resolver isso?

    Muito Obrigado.
    EA
    Eduardo Augusto
    Eduardo Augusto
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 01/01/2016

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  Eduardo Augusto em 6/5/2019, 18:30

    Prezados amigos:

    Debrucei-me sobre o código e cheguei a uma possível e, talvez, boa solução.
    Para a inserção da imagem do QRCode usei um controle do tipo imagem (denominado [imgQR]).
    Defini a propriedade "fonte de dados" chamando uma função (que acabei de criar: ImQRCode), enviando a ela o nome do arquivo da imagem do QRCode (extraído de um outro controle: [NomeArqQR]):

         Fonte do Controle = ImQRCode([NomeArqQR])

    Quanto a essa função, tive que criar um módulo com uma função pública (tentei função privada e função pública no corpo do formulário, mas não obtive êxito).
    O único problema que ocorreu no início foi a permanência da imagem "padrão" (1ª tentativa de obter a imagem, que informei na postagem anterior), nas hipóteses de registros em que o QRCode ainda não poderia ser gerado pela falta do preenchimento de alguns campos (novos campos, criados para gerar o QRCode).

    Enfim, após muita tentativa e erro, creio ter encontrado a solução para esse último problema:  definir a propriedade "tipo de imagem" do controle [imgQR] como "vinculada" (e não "inserida", que é default do Access).

         Tipo de Imagem = Vinculada

    Segue abaixo, o código da Função (em um Módulo específico) :

    Código:

    Public Function ImQRCode(filename As String)
      Dim caminho As String
        
      caminho = "\\SERVIDOR\Sistema\QRCode\QRCode-R" & filename
          
      If filename = "" Then
        IsNull (ImQRCode)
        Exit Function

      ElseIf Dir(caminho) = vbNullString Then
        IsNull (ImQRCode)
        Exit Function

      Else
        ImQRCode = caminho
      End If

    End Function


    Deixo, no momento, de encerrar o tópico, sem marcá-lo como [resolvido], devido ao risco de meu código estar equivocado ou que seja ele merecedor de reparos.
    Para tal, solicito a douta opinião dos colegas se há algo a ser considerado para a melhoria do código ou algo a ser corrigido para evitar falhas.
    Em, no máximo dois dias, marcarei o tópico como [resolvido], pois, até o momento, estou bastante satisfeito!

    Muito obrigado.
    EA
    marcos_novack
    marcos_novack
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 19/01/2011

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  marcos_novack em 7/5/2019, 00:56

    olá amigos!

    Se me permitem segue um Exemplo do mestre Plinio! acredito que faz sentido, com uma tabela para armazenar o caminho e um dlookup fica top.

    Coloque no evento "No atual" do formulário o código.

    Código:
    On Error GoTo Sai
    '------------Autor Plinio Mabesi------ Antigo Forum ExpertAccess-------

    Dim CaminhoFoto As String


      CaminhoFoto = DLookup("[CaminhoFotos]", "tblFotos")
      
       If Not IsNull(Me.referencia) Then
      
        'Verifica se existe a imagem na pasta
        If Dir(CaminhoFotoInovack & "\" & Me.referencia & ".jpg", vbArchive) <> Empty Then
            'Busca a imagem que está na pasta mais o código da imagem e coloca no campo foto.
            Foto.Picture = CaminhoFotoInovack & "\" & Me.referencia & ".jpg"
        Else
            'Busca a imagem padrão caso a foto não exista      
            Foto.Picture = CaminhoFotoInovack & "\" & "fotopadrao" & ".jpg"
        End If
        
        Else
        Foto.Picture = CurrentProject.Path & "\" & "fotopadrao" & ".jpg"
    End If
    '--------------------------------fim do procedimento para fotos----------------------------------------

    Sai1:
        Exit Sub
    Sai:
        Dim NadaV As Long
        NadaV = MsgBox("Ocorreu o erro nº" & err.Number & Chr(13) & err.Description & Chr(13) & Chr(13) & "Se o problema persistir, entre em contato com o supervisor!", vbCritical, "Inovack Sistemas")
        Resume Sai1
    marcelo3092
    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 171
    Registrado : 19/08/2010

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  marcelo3092 em 7/5/2019, 01:19

    Ola amigo tenho um exemplo aqui que é muito util acredito que vai te ajudar de vez ele gera o qrcode adiciona a imagem na pasta ja com um nome veja ai.

    drive.google.com/open?id=1dAHpWij9v5Pvl5Hj2rvngR3_RPYT3uxr

    Baixa cria uma pasta e descompacta a pasta e o programa dentro.
    Anexos
    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário AttachmentQrCode.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (56 Kb) Baixado 10 vez(es)
    Eduardo Augusto
    Eduardo Augusto
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 01/01/2016

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  Eduardo Augusto em 9/5/2019, 23:11


    Agradeço a todos (Ivan, Marcos e Marcelo, em especial) e pela participação e, principalmente, por me honrarem com o compartilhamento de seus conhecimentos.
    Como já esclareci na postagem anterior, inclusive com a divulgação das linhas de código, meu problema já foi resolvido e o aplicativo está funcionando perfeitamente.

    Portanto, tópico encerrado com a questão resolvida com 100% de satisfação. Very Happy

    Muito obrigado.
    EA

    Conteúdo patrocinado

    [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário Empty Re: [Resolvido]VBA - buscar imagem de download e inserir no campo do formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/9/2019, 01:48