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

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Seg 24 Mar 2014, 2:08 pm

    Boa Tarde a todos

    Antes de colocar as minhas duvidas queria dizer que ah mais de uma semana tenho tentado encontrar formas de resolver as minhas questões/ duvidas  e o que eu tenho encontrado é algumas coisas idênticas mas com ficheiros .txt  mas mesmo assim fazendo manualmente a busca do ficheiro para depois passar os dados para a base de dados
    “sArquivo = "E:\TEMP\TESTE.TXT" '//Arquivo de texto com os dados”
    Bem o que eu tenho andado a procura é de alguma forma de através do nome dos pdf’s disponível nas pastas, depois de os selecionar na base de dados preencha alguns campos de forma automática,

    exemplo dos títulos dos pdf’s

    Ex1: N321_PE/000/2014_Tiago Branco.pdf
    Ex2: N321_PE/1111/2014_Tiago Sousa.pdf

    Na Base de dados o Campo Processo ser preenchido desta forma:  PE/000/2014
    E o Campo Nome desta: Tiago Branco

    Já encontrei algumas formas de resolver engraçadas mas que não encaixam no que eu quero, uma delas conseguia passar o nome do pdf para a base de dados mas o numero de caracteres no nome do pdf tinha de ser o mesmo em todos os ficheiros mas tal não acontece porque são cerca de Mil Ficheiros PDF e todos Com os Nomes diferentes.

    Não sei se me fiz entender de forma explicita mas,
    Agradeço desde já a disponibilidade de todos em ajudar
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Jungli Seg 24 Mar 2014, 3:41 pm

    com relação ao nome do arquivo,
    o exemplo abaixo, quebra o nome do arquivo para popular nos respectivos campos do formulário.

    '* por jungli ********************************************************************
    '* http://maximoaccess.forumeiros.com ************************************************

    '// Variáveis
       Dim temp1
       Dim NomeArquivo As String
       Dim nArquivoLimpo As String
       Dim nProcessoLimpo As String
    '// Coloque aqui a rotina para pegar o caminho do arquivo
       NomeArquivo = CurrentProject.Path & "\N321_PE/000/2014_Tiago Branco.pdf"
       MsgBox NomeArquivo
    '// Quebra o nome do arquivo
       temp1 = Split(NomeArquivo, "_")
    '// Preenche as variáveis
       nArquivoLimpo = temp1(1)
       nProcessoLimpo = Replace(temp1(2), ".pdf", "")
    '// Mostra o resultado
       MsgBox nArquivoLimpo
       MsgBox nProcessoLimpo
    '   campos do formulário.
    '// Fim
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Ter 25 Mar 2014, 8:27 am

    Muito bom dia malta,
    Obrigado JUNGLI por estar a ajudar, de facto o seu exemplo esta bem simples e fácil, mas não encaixa no meu projeto porque ate agora eu sei o nome de todos os pdf mas daqui para a  frente não sei o que pode vir o processo já pode ser   PEDel/000/2015 e assim sucessivamente  os nomes todos diferentes

    Porque é assim  eu não expliquei no post anterior mas o nome do pdf vem a partir do scâner depois de digitalizado um documento, por isso é que eu estou a dizer, ate hoje eu sei o nome de todos os pdf mas os próximos já não, e eu estar a escrever no código o nome de todos os pdf da mais trabalho do que se estivesse a escrever manualmente nos respetivos campos diretamente,
    E o que eu queria fazer era monitorizar o mais possível,

    Obrigado JUNGLI mais uma vez por disponibilizar um tempo em ajudar.


    O Que eu pretendo talvez ate esteja a um passo mais pequeno do que quero dar,
    É assim da para passar o nome do pdf para um campo na base de dados?
    é que a partir dai pode tornar tudo mais simples depois talvez possa dividir o nome do pdf em partes e distribuir pelos diverços campos.
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Jungli Ter 25 Mar 2014, 11:13 am

    Seguindo a regra do Windows:

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf E6wpyt

    Imagino eu que os nomes dos arquivos são como na imagem abaixo:

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf 14ebdvs

    Segue o arquivo de exemplo em anexo.

    1. Abra o formulário frmTeste
    2. Clique em Gerar
    3. Selecione a pasta dos PDFs e clique em OK

    A listagem com os nomes dos arquivos e a listagem da tabela serão preenchidas automaticamente.
    A listagem com os nomes dos arquivos é temporária e se apagará quando fechar o formulário, coloquei apenas para demonstração.

    abs.
    Anexos
    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf AttachmentTiago Branco.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (28 Kb) Baixado 36 vez(es)
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Qua 26 Mar 2014, 8:29 am

    Muito Bom dia Obrigado JUNGLI penso que é isto mesmo  o que eu quero, este muito bom ao que me parece
    mas ao clicar no botão gerar aparece uma mensagem a falar das macros o meu access esta em 2007
    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf 35332p0
    andei a ver no codigo mas nao vejo o que possa ser
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Jungli Qua 26 Mar 2014, 8:55 am

    Bom dia,

    Seu problema está nas referências aos objetos do office

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Ipcrw8

    Na sua máquina: Microsoft Access 12.0 Object Library
    ..............................: Microsoft Office 12.0 Access database engine Object Library
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Qua 26 Mar 2014, 9:40 am

    Tem razão JUNGLI as referencias aparecem a 12.0 e não 14.0
    mas nao me parece que o erro venha dai  
    Eu acho que tem a ver com este código e que o sistema é 64 e não 32
    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf 24vs113

    Muito Obrigado
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Jungli Qua 26 Mar 2014, 9:46 am

    substitua os campos tipo Long para LongPtr



    Option Compare Database

    Public Declare PtrSafe Function SHBrowseForFolder Lib "shell32.dll" Alias _
    "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As LongPtr
    Public Declare PtrSafe Function SHGetPathFromIDList Lib "shell32.dll" Alias _
    "SHGetPathFromIDListA" (ByVal pidl As LongPtr, ByVal pszPath As String) _
    As LongPtr

    Public Type BROWSEINFO
    hOwner As LongPtr
    pidlRoot As LongPtr
    pszDisplayName As String
    lpszTitle As String
    ulFlags As LongPtr
    lpfn As LongPtr
    lParam As LongPtr
    iImage As LongPtr
    End Type

    Public Function gfSelecionarPasta(ByVal vFolder As String, Optional Title As String, Optional hWnd) As String

    Dim bi As BROWSEINFO
    Dim pidl As LongPtr
    Dim folder As String

    folder = String$(255, Chr$(0))

    With bi
    If IsNumeric(hWnd) Then .hOwner = hWnd
    .pidlRoot = 0
    If Title <> "" Then
    .lpszTitle = Title & Chr$(0)
    Else
    .lpszTitle = "Select a Folder" & Chr$(0)
    End If
    End With

    pidl = SHBrowseForFolder(bi)

    If SHGetPathFromIDList(ByVal pidl, ByVal folder) Then
    folder = Left(folder, InStr(folder, Chr$(0)) - 1)
    Else
    folder = ""
    End If

    If Right(folder, 1) <> "\" And Len(folder) > 0 Then folder = folder & "\"

    gfSelecionarPasta = folder

    End Function

    Public Function ListaArquivos(ByVal Caminho As String) As String()
    'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime
    Dim FSO As New FileSystemObject
    Dim result() As String
    Dim Pasta As folder
    Dim Arquivo As File
    Dim Indice As LongPtr


    ReDim result(0) As String
    If FSO.FolderExists(Caminho) Then
    Set Pasta = FSO.GetFolder(Caminho)

    For Each Arquivo In Pasta.Files
    Indice = IIf(result(0) = "", 0, Indice + 1)
    ReDim Preserve result(Indice) As String
    result(Indice) = Arquivo.Name
    Next
    End If

    ListaArquivos = result
    ErrHandler:
    Set FSO = Nothing
    Set Pasta = Nothing
    Set Arquivo = Nothing
    End Function
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Qua 02 Abr 2014, 7:56 am

    Bom dia a Todos

    JUNGLI o que você me passou esta a funcionar na perfeição não foi preciso meter em LongPtr
    Mas esta meio que difícil aplicar ao meu projeto pois eu quero que fique mais ou menos assim

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Dfamnr

    o Nome do pdf neste caso será: n001_asd12_Antonio Luis.PDF

    E queria que fica-se o pdf para se poder ver no Access mas depois do código que me deu fiquei muito mais contente pois pensei que era impossível dividir o nome do documento.

    Da para fazer por exemplo: eu seleciono o pdf naquela caixa e ela passar o nome do pdf para um campo na base de dados e a partir desse campo não da para dividir o nome para 2 ou 3 campos?

    Pois da forma que me fez esta muito boa mas divide todos os documentos de uma só vez para a base de dados mas eu pretendia  um a um pois há mais campos para preencher com o documento pdf como ve na imagem, erro foi meu que não dei esta informação de inicio desculpe
    e Obrigado pela ajuda
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  wsenna Qua 02 Abr 2014, 11:20 am

    Olá Senhores, bom dia.

    Muito me interessou es tópico entretanto estou a enfrentar problemas com o módulo descrito acima exatamente no que se refere ao termo PtrSafe

    Public Declare PtrSafe Function SHBrowseForFolder Lib "shell32.dll" Alias _
    "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
    Public Declare PtrSafe Function SHGetPathFromIDList Lib "shell32.dll" Alias _
    "SHGetPathFromIDListA" (ByVal pidl As LongPtr, ByVal pszPath As String) _
    As Long


    Cabe informar que utilizo o Access 2003 e que já fiz as devidas correções nas referências.



    Abraços, WSenna
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Qua 02 Abr 2014, 11:25 am

    Bom dia Wsenna

    o meu é 2007 eu alterei as referencias e depois retirei 2 coisas nesse código e a mim já começou a dar

    Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
    "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
    Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
    "SHGetPathFromIDListA" (ByVal pidl As LongPtr, ByVal pszPath As String) _
    As Long

    espero que ajude
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  wsenna Qua 02 Abr 2014, 11:43 am

    Olá Tiago, obrigado pelo pronto atendimento.

    Amigão, o problema agora refere-se ao trecho:

    Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
    "SHGetPathFromIDListA" (ByVal pidl As LongPtr, ByVal pszPath As String) _
    As Long

    Mensagem recebida:

    Erro de compilação:

    O tipo definido pelo usuário não foi definido.



    [  ]s WSenna
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Qua 02 Abr 2014, 11:49 am

    Amigo

    acho que é por causa das variáveis eu vou meter o meu código,
    Não alterei o Long para longPtr deve ser isso espero que ajude.

    Option Compare Database

    Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
       "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
    Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
       "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
       As Long
       
    Public Type BROWSEINFO
       hOwner As Long
       pidlRoot As Long
       pszDisplayName As String
       lpszTitle As String
       ulFlags As Long
       lpfn As Long
       lParam As Long
       iImage As Long
    End Type

    Public Function gfSelecionarPasta(ByVal vFolder As String, Optional Title As String, Optional hWnd) As String

       Dim bi As BROWSEINFO
       Dim pidl As Long
       Dim folder As String

       folder = String$(255, Chr$(0))

       With bi
           If IsNumeric(hWnd) Then .hOwner = hWnd
           .pidlRoot = 0
           If Title <> "" Then
               .lpszTitle = Title & Chr$(0)
           Else
               .lpszTitle = "Select a Folder" & Chr$(0)
           End If
       End With

       pidl = SHBrowseForFolder(bi)

       If SHGetPathFromIDList(ByVal pidl, ByVal folder) Then
           folder = Left(folder, InStr(folder, Chr$(0)) - 1)
       Else
           folder = ""
       End If

       If Right(folder, 1) <> "\" And Len(folder) > 0 Then folder = folder & "\"

       gfSelecionarPasta = folder

    End Function

    Public Function ListaArquivos(ByVal Caminho As String) As String()
       Dim FSO As New FileSystemObject
       Dim result() As String
       Dim Pasta As folder
       Dim Arquivo As File
       Dim Indice As Long


       ReDim result(0) As String
       If FSO.FolderExists(Caminho) Then
           Set Pasta = FSO.GetFolder(Caminho)

           For Each Arquivo In Pasta.Files
               Indice = IIf(result(0) = "", 0, Indice + 1)
               ReDim Preserve result(Indice) As String
               result(Indice) = Arquivo.Name
           Next
       End If

       ListaArquivos = result
    ErrHandler:
       Set FSO = Nothing
       Set Pasta = Nothing
       Set Arquivo = Nothing
    End Function
    wsenna
    wsenna
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  wsenna Qua 02 Abr 2014, 12:00 pm

    Grande Tiago.

    Perfeito, como diz nosso Mestre JPaulo, funfou às mil maravilhas.
    Agradeço penhoradamente ao amigo JUNGLI pela sua disponibilidade.

    Abraços, WSenna


    Última edição por wsenna em Qua 02 Abr 2014, 12:23 pm, editado 1 vez(es)
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Qua 02 Abr 2014, 12:05 pm

    Fico contente por estar a funcionar e a que dar mérito ao nosso amigo JUNGLI pela sua disponibilidade
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Jungli Qua 02 Abr 2014, 4:00 pm

    Boa tarde,
    ao Mestre wsenna agradeço o interesse ao tópico,
    Tiago vou ver o que posso fazer, e posto depois.
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 715
    Registrado : 07/05/2010

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Jungli Qui 03 Abr 2014, 10:24 am

    Bom dia
    Vejamos se é isto que queres. Wink
    Anexos
    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf AttachmentTiago Branco v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (432 Kb) Baixado 41 vez(es)
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Ter 08 Abr 2014, 10:35 am

    Boa Tarde JUNGLI

    Vou ver, e colocar tudo a funcionar, gostei do que vi daqui a uns dias dou o retorno
    Obrigado.
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Seg 14 Abr 2014, 11:35 am

    Muito Boa Tarde JUNGLI

    Esta a Funcionar as mil maravilhas era mesmo isto que eu andava a procura a semanas ainda esta melhor, muito bom mesmo
    Muito Obrigado JUNGLI por me ter ajudado
    avatar
    TiagoBranco
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 24/03/2014

    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  TiagoBranco Sex 20 Jun 2014, 2:22 pm

    Resolvido

    Conteúdo patrocinado


    [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf Empty Re: [Resolvido]Preencher campos na base de dados através do nome de qualquer documento pdf

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sex 22 Nov 2024, 5:33 pm