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


3 participantes

    Retornar caminho(diretório) de campo anexo

    DavidCooper
    DavidCooper
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 29/02/2016

    Retornar caminho(diretório) de campo anexo Empty Retornar caminho(diretório) de campo anexo

    Mensagem  DavidCooper 22/3/2016, 10:45

    Olá galera... a situação é a seguinte, tenho um form com um campo anexo para anexar NotaFiscal...
    gostaria de criar um procedimento para abrir um novo form pra visualizar a nota fiscal no próprio Access...

    A nota fiscal é em PDF e pretendo fazer isto usando um controle activeX, o problema é que preciso saber o caminho do arquivo em anexo pra poder visualiza-lo no activeX... Ja busquei no Forum, no "Prof. Google"... sem sucesso...

    Grato..
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  FabioPaes 22/3/2016, 12:50

    Salve engano, os arquivos ANEXOS ficam armazenados direto no campo da Tabela... Sendo assim o caminho é o próprio campo da tabela...

    Não recomendo usar Anexo...

    Veja nesse Post do Avelino Sampaio, ele ensina a montar...
    http://www.usandoaccess.com.br/dicas/exibindo-pdf-pelo-access.asp?id=1
    DavidCooper
    DavidCooper
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 29/02/2016

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  DavidCooper 22/3/2016, 13:04

    Obrigado pelo retorno fabiopaes, mas como disse, ja tou por dentro de como usar o activeX, e como vc deve ter visto neste link q me mandou, é necessário ter o diretorio do arquivo PDF para q o ActiveX abra o mesmo,,,

    O campo anexo é "dividido" em três partes na tabela: FileData, FileType, FileName.... Consegui retornar FileName(nome do Aquivo) e FileType(formato do Arquivo - no caso PDF)... no caso suponho q FileData fosse o diretorio, mas não consigo "extrair" o diretorio desse anexo....

    De qq forma obrigado pelo retorno...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  JPaulo 22/3/2016, 15:10

    Ola Davi;

    Nesse tipo de campo o Ms Access guarda metadados em binario, por exemplo (C4F4E05C8F664AB1AF7839F2B937CA99);

    Não existe forma de dar a volta direto;

    Uma possibilidade é você usar esta função, que extraí o anexo para uma pasta temporaria e aí já pode usar o caminho completo.

    No final de usar, pode até fazer o delete folder e fica dinamico;

    Código:
    Function SalvaAnexo()
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim rstAnexo As DAO.Recordset2
    Dim fld As DAO.Field2
    Dim strCaminho As String
    'By JPaulo maximoaccess.com
    'extrair o anexo para uma pasta
    'para poder utilizar o caminho em outros eventos
    Set db = CurrentDb
    Set rst = db.OpenRecordset("SuaTabela", dbOpenDynaset)
        ' rst.FindFirst "ID = " & Me!ID
         Set rstAnexo = rst.Fields("SeuCampoAnexo").Value
         Set fld = rstAnexo.Fields("Filedata")
         'verifica se a pasta temporaria, existe
         If Len(Dir(CurrentProject.Path & "\PastaTemporaria", vbDirectory)) = 0 Then
         'se não existir, cria
            MkDir CurrentProject.Path & "\PastaTemporaria\"
            Else
         On Error Resume Next
         'se existir, apaga todos os ficheiros
            Kill CurrentProject.Path & "\PastaTemporaria\*.*"
         'depois apaga a pasta
            RmDir CurrentProject.Path & "\PastaTemporaria"
         'volta a criar de novo
            MkDir CurrentProject.Path & "\PastaTemporaria\"
         End If
         'coloca na variavel o caminho do anexo
         strCaminho = CurrentProject.Path & "\PastaTemporaria\" _
         & rstAnexo.Fields("Filename")
        
         On Error GoTo 0
         'sala o anexo
         fld.SaveToFile strCaminho
     
     rstAnexo.Close
     rst.Close
     Set rstAnexo = Nothing
     Set rst = Nothing
     Set db = Nothing
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Retornar caminho(diretório) de campo anexo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Retornar caminho(diretório) de campo anexo Folder_announce_new 102 Códigos VBA Gratuitos...
    Retornar caminho(diretório) de campo anexo Folder_announce_new Instruções SQL como utilizar...
    DavidCooper
    DavidCooper
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 29/02/2016

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  DavidCooper 22/3/2016, 16:14

    Viishh.... Uma baita "gambiarra"...kkkkk.... Muitissimo obg Mestre JPaulo, vou fazer as modificações necessárias aqui e dou um retorno aqui no forum...

    Grato
    DavidCooper
    DavidCooper
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 29/02/2016

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  DavidCooper 22/3/2016, 16:41

    Deu Erro: "Erro de Compilação: o tipo usado pelo usuario não foi definido"... Bem na linha que define "Dim rstAnexo As DAO.Recordset2"
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  FabioPaes 22/3/2016, 16:46

    Ta uma olhada la nas Referencias desse Modulo... ta faltando alguma...

    Veja se não é a : Microsoft Office xxx Object Library

    Retornar caminho(diretório) de campo anexo 33l0e3o
    DavidCooper
    DavidCooper
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 29/02/2016

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  DavidCooper 22/3/2016, 17:20

    Ok.. realmente tava faltando uma referencia, mas agr o problema ta na hr de salvar " fld.SaveToFile strCaminho" .... Da erro 3001: Argumento Invalido.... scratch Shocked
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  JPaulo 23/3/2016, 12:46

    ola;

    Não deveria dar erro.
    Faça por favor o Debug, Compile para ver se existe erros em códigos.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Retornar caminho(diretório) de campo anexo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Retornar caminho(diretório) de campo anexo Folder_announce_new 102 Códigos VBA Gratuitos...
    Retornar caminho(diretório) de campo anexo Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    Retornar caminho(diretório) de campo anexo Empty Re: Retornar caminho(diretório) de campo anexo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/5/2024, 06:28