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

4 participantes

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

    Eduardo Augusto
    Eduardo Augusto
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    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 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)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2909
    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  DamascenoJr. 2/5/2019, 23:47

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


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    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 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
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 250
    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 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 33 vez(es)
    Eduardo Augusto
    Eduardo Augusto
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    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 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

      Data/hora atual: 1/8/2021, 12:37