Exibindo arquivos em PDF pelo Access
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Ficou muito fácil configurar o Access 2007/2010 para a exibição de arquivos em PDF, bastanto para tanto, utilizar o controle ActiveX do Adobe Reader.
Para que o ActiveX funcione é necessário que você tenha instalado na sua máquina o software Adobe Acrobate Reader.
Abra um formulário no modo estrutura e selecione o botão ActiveX na guia design da ribbon.
Selecione da lista a opção Adobe PDF Reader e clique em OK.
O quadro do Reader é carregado no formulário.
Observe o código abaixo, utilizado no exemplo que disponibilizo, que no evento "Ao abrir" do formulário, defino o tamanho do quadro e chamo pela função que carrega o arquivo PDF no ActiveX.
Faça o login aqui para ter acesso ao código.
Veja o resultado de um dos artigos sendo carregado no formulário:
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Adquira o kit UsandoAccess e aprenda em alta velocidade
42 comentário(s) ILMAR ESTEVES DE SOUZA 25/08/2024 09:46:42 gostaria de saber mais sobre como ver documento aquivo pdf pelo formulario access Glauco 09/12/2022 18:24:47 Tenho a mesma dúvida do colega acima Renan 07/06/2022 21:12:31 Avelino, Tem como manipular este arquivo carregado? Tipo se eu quiser buscar uma palavra dentro deste arquivo carregado e carregar as ocorrências dela dentro de uma listbox, eu consigo? Renan 15/04/2022 18:03:27 Avelino, Consigo carregar uma visualização no formulário desse jeito com arquivos de word e excel? Anderson 29/01/2022 12:33:31 Avelino, boa tarde! Implementei este código no meu aplicativo, ficou muito bom, porém o nome do arquivo PDF eu defini como um campo da minha tabela de registros e gostaria que a cada vez que eu mudasse o meu registro no formulário, a visualização do arquivo PDF também fosse atualizada sem ter que apertar o botão (que deixei oculto), como fazer essa pequena alteração? Grato. Adriana 27/01/2022 16:01:35 Avelino eu implementei o código de exibição de pdf em um servidor que usava Windows 7. Várias pessoas faziam uso do sistema por acesso remoto, além de acesso da rede local. Estava tudo funcionando perfeitamente. Mas o servidor foi formatado e instalado o windows server. A partir daí, quando é feito o acesso remoto, não se consegue visualizar os arquivos pdf. O acesso local continua funcionando perfeitamente. Vc tem alguma dica para solucionar o problema? Agradeço desde já. Regina Cely 25/01/2022 02:19:25 Oi Avelino, Não implementei aquela rotina do cálculo anterior. Na ocasião, por algumas razões, minha chave era caracter e ainda continua mas criei um campo sequencial, inteiro longo, com numeração automática e posso aplicar então. Mas o motivo de eu ter entrado é que precisava de uma rotina para ler arquivos pdf no Access. E agradeço pois consegui aqui uma orientação precisa. Um abraço, Ismael 09/11/2021 08:17:45 Ótimo artigo Avelino, Implementei ele em uma aplicação. Porém preciso girar a visualização do pdf após a abertura. Tentei usar, após o comando Me!AcroPDF0.LoadFile a instrução: SendKeys "+^{+}" Ela seria o atalho (Shift + Ctrl + Adição), atalho para girar a visualização no adobe. Porém não obtive sucesso. Tem alguma idéia do que possa ser? Obrigado e muito sucesso! Avelino Sampaio 20/09/2021 06:13:41 Hugo, sim, vá na seção "Tutorias" aqui do site e veja o artigo "Gerar relatórios em pdf e enviar por email" Sucesso! Hugo Furtado 20/09/2021 05:59:59 Boas, Como faço um relatório feito em access 2007 e depois quando click no botão imprimi já vem como pdf, é possivel? Walter 15/07/2021 19:54:14 Avelino, tenho lido o seu artigo "64 bits - Seus aplicativos no futuro do presente", mas ainda não estou por entender como faço funcionar o pdf no access, já que o ActiveX não funciona em 64 bits. Você já conseguiu algo do tipo? Abraços Moreschi 12/07/2021 09:49:32 Olá Avelino, tudo bem? Como faço para saber os nomes dos campos de uma tabela via VBA? Abraços Avelino Sampaio 29/05/2021 04:55:29 Helio, Quando é que um PDF se tornou editável ? Que programa vc usa para isso ? Bom, nunca vi este recurso no Access. Você pode gerar PDF de um relatório desde a versão 2007. Sucesso! Hélio Sales 28/05/2021 17:08:30 Senhores, tenho um pdf editável. Saberiam me dizer se consigo fazer essa edição pelo access 2007/2010. Grato e parabéns pelas matérias publicadas. Cleverson 05/05/2021 14:29:00 Estou com um problema. Consigo abrir, imprimir mas imprime com orintação portrait. Eis o código Me.AcroPDF02.Width = 568 * 22 Me.AcroPDF02.Height = 568 * 15.5 Me.AcroPDF02.LoadFile ("C:\Teste\Relatorio de produção 25.4.2014 - Cópia (2).pdf") Application.Printer.Orientation = acPRORLandscape Me.AcroPDF02.printAll o comando Application.Printer.Orientation = acPRORLandscape não está funcionando e não mostra erro. simplesmente imprime no modo retrato. Poderia me ajudar? Lelson Barbosa 03/04/2021 08:50:16 Avelino, Obrigado vou efetuar essas revisões e retornar o resultado Avelino Sampaio 03/04/2021 08:46:39 Lelson, verifique també se o Abode Reader está instalado. Sucesso! Avelino Sampaio 03/04/2021 08:45:02 Lelson então o outro pc pode estar usando o Office 2010 de 64 bits. O ActiveX não funciona na versão de 64 bits. Verifique. Vá na seção tutorial aqui do site e leia o artigo "64 bits - Seus aplicativos no futuro do presente" Sucesso! Lelson Barbosa 03/04/2021 07:44:19 Avelino, Avelino esqueci-me de dizer que estou a utilizar o access 2010, o meu projeto não abre no access 2007. Obrigado Avelino Sampaio 03/04/2021 06:10:02 Lelson, Isso acontece por que o outro PC não está com Office 2007 atualizado. Leia o artigo "Não deixar abrir se não tiver o Service Pack 2 instalado" aqui na seção DICAS do site. Sucesso! Lelson Barbosa 03/04/2021 06:00:16 Avelino, Utilizei tudo direitinho como você explica ai e o meu arquivo PDF visualiza normalmente, mas quando eu copio o meu projeto pra outro pc ele não encontra o obeto (o PDF), vale mencionar que usei uma macro para chamr o formulário. Avelino Sampaio 02/04/2021 18:49:45 Se estiver usando a versão de 64 bits do Office 2010 realmente não tem o Active X do PDF. Rafael batista 02/04/2021 18:29:52 Olá Avelino, no meu win 7 não está rodando o pdf no access, eu nem acho ele na lista do activex. segundo sua disposição você poderia me ajudar? Access 2010 João Paulo 02/04/2021 15:44:24 Avelino, Esqueci de mencionar, se quiser passar informações com anexos, estou na sua lista de usuários do Monta Ribons. Tenho uma licença de uso. Valeu! João Paulo 02/04/2021 15:42:32 Avelino, Acho melhor eu descrever o problema por completo. Eu utilizo como base do meu aplicativo, o seu Maestro. Para visualizar os PDF mesclei a listagem de documentos através do formulario "Form_frmPermissõesUsuários" da solução do Maestro que usa o "RowSource" + controle ActiveX. No PC em que desenvolvo o aplicativo está instalado o WinXP SP3 + Access 2007 e nesta configuração o aplicativo está funcionando perfeitamente. Depois de testado publiquei o programa em servidor que utiliza o Windows Server 2003 + Access 2007, e ai que começa o problema. Quando eu executo o programa diretamente do servidor ou por atalho em qq outro PC diferente do meu, ao abrir aparece a mensagem "Can't find project or library" e não inicia o programa. Então vou até a biblioteca e vejo que não existe uma referencia, pois aprece a seguinte mensagem "MISSING: Acrobat Access 3.0 Type library" na lista de referências. Pronto, desmarco essa opção, o aplicativo inicia normalmente, porém não consigo que a lista de documentos que eu quero ver em pdf apareça. Esse problema não acontece no meu pc. Posso marcar e desmarca essa referencia que ele funciona normalmente, mas em qq outro pc ele não funciona. Não sei mais o que fazer. Se souber algo, fico muito grato. Avelino Sampaio 02/04/2021 14:38:04 João, mas vc está com o Access 2007 ? Se estiver, atualize com o pacote Sp3, que vc baixa do site da Microsoft. Se estiver com o Access 2010 e for de 64bits, creio que vc não terá a sua disposição o Active X. Teras que procurar outra solução. Qual é a mensagen do erro ? João Paulo 02/04/2021 14:08:32 Avelino, Estou com o mesmo problema exposto acima pelo Robson, porém eu ainda não encontrei a solução. Ficaria grato se alguém tivesse uma luz. Obrigado Avelino Sampaio 01/04/2021 16:11:58 Luis Araujo, experimente este : application.FollowHyperlink currentProject.path & "\artigos\Tabela03.pdf ou application.FollowHyperlink origem & "\artigos\Tabela03.pdf Sucesso! Luis Araujo 01/04/2021 12:09:58 Boa Tarde Uma simples questão como posso abrir um pdf estando a ligação num modulo Gostaria de abrir em formato htm ou pdf Já experimentei algumas destas. Public Sub fncOnAction(control As IRibbonControl) On Error GoTo Trataerro Select Case control.ID Case "bt03" 'DoCmd.AcroPDF0.LoadFile origem & "\artigos\Tabela03.pdf 'DoCmd.OpenFile CurrentPath & "\artigos\Tabela03.pdf" Waldson 31/03/2021 20:00:09 Boa noite a todos, Consegui abrir o arquivo .pdf não em um formulário e sim pelo Application.FollowHyperlink. Gostaria de saber se tem como imprimir uma página específica. exemplo: imprimir as páginas 2, 4 e 6 deste arquivo aberto. Agradeço a todos pela orientação. Williams 30/03/2021 18:12:56 Claudio Alves de Oliveira teria como disponibilizar o banco de dados (sistema de arquivo de documentos.) que comentou como exemplo ? Márcio Melo - Rio de Janeiro/RJ 27/11/2020 18:58:26 Hoje, aproveitei para implementar essa grande dica com muito estilo, adicionei em meu projeto um simples leitor PDF apontando como você sugiriu para uma pasta [artigo] e para complementar coloquei uma combobox listando todos os artigos desta pasta, bastando o leitor escolher e pronto já esta ao seu alcance a leitura do pdf - nesse link tem como listar os arquivos de um diretório (http://www.tomasvasquez.com.br/blog/microsoft-office/vba-listar-arquivos-de-um-diretorio) para ajudar vou deixar aqui parte de como fiz a chamada da função para montar a lista, olhem o resto da função no link Dim arquivos() As String Dim listagem As Variant Dim lCtr As Long arquivos = ListaArquivos(origem) For lCtr = 0 To UBound(arquivos) ' Debug.Print arquivos(lCtr) & ";" 'RowSource - separar por ponto e virgula listagem = listagem & arquivos(lCtr) & ";" Next Me.Comb1.RowSource = listagem lembrar que na combobox, deve estar configurada para lista de valores. Então, Avelino resolvi seguir o seu conselho e nesta pasta artigos vou colocar os pdf relacionado a ajuda do programa de maneira que a própria empresa possa fazer esse tutorial. Sou mais Brasil! forte abraço Madson Braz 10/11/2020 17:13:26 1º: Avelino muito boa essa dica. 2º: Claudio Alves de Oliveira , no site http://www.adobe.com/products/acrobat/technical-resources.html tem um SDK para Acrobat que demonstra o uso da ferramenta, acredito que encontre lá os parâmetros para concatenar pdfs usando alguma dll da adobe. 3º: Uma dica> Toda vez que "lodava" um arquivo ele voltava para a visualização de página inteira. Então buscando na internet os métodos que compõem o objeto, para verificar como setar o zoom de exibição, encontrei um pdf que lista todos eles: http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/reader/pdfs/reader_overview.pdf Usei o setZoom e adicionei ao código que carrega o arquivo, ficando assim: flPdf = "s:\temporario\" & Me.Lista0.Column(0) Me.AcroPDF2.LoadFile flPdf Me.AcroPDF2.setZoom (90) No caso aqui setei para carregar em 90% Avelino Sampaio 27/09/2020 11:02:35 Robson, Obrigado pelo seu retorno e peço mil desculpas pela minha falta de retorno. Sucesso Robson 27/09/2020 09:26:37 Avelino, mesmo que você não tenha escrito nada a a respeito do meu comentário de 16/09/10, informo que já resolvi o problema. Robson 16/09/2020 16:49:41 Avelino, muito bom o artigo. Eu tenho um aplicativo (winXP e access2007) e utilizei parte de seu código para visualizar arquivos pdf. Trocamos nossos equipamentos para win7 e access2010 e o sistema não esta exibindo os arquivos. Gostaria de saber se você tem alguma sugestão. Obrigado! Avelino Sampaio 20/08/2020 10:34:35 Marcelo, testei num caidinho que tenho aqui e sinceramente, não achei que compremeteu não. Grato pela sua participação. Claudio Alves de Oliveira 19/08/2020 17:22:41 Boa Tarde... Achei muito util o artigo pois até hoje eu usava a visualização pelo WebBrowser para os arquivos PDF... A proposito... você sabe se é possivel fazer isto em relatórios? Digo porque tenho um sistema de arquivo de documentos... Assim a empresa scaneia todos os documentos em PDF e o sistema os arquiva na rede, no entanto as vezes uma àrea da empresa pede os documentos relacionados a um assunto em especial e eu gostaria de criar um relatorio consolidando com todos os PDFs arquivados sobre o assunto em um único PDF do sistema. Eu já consigo fazer isto com os documentos armazenados como JPG "Relatório Fotográfico" mas não sei se da para fazer com PDFs. Marcelo 19/08/2020 13:45:02 olá avelino gostei muito do artigo, mas vem cá, lá aonde define altura e largura, se colocasse direto em twips não se ganharia alguns microssegundos no carregamento do pdf? imagino que da forma que voce coloca o access irá gastar micronesimos de segundo calculando antes para depois abrir ou não? se essa teoria estiver certa talvez em pcs menos robustos isso possa fazer uma maior diferença. o que tu diz? Jaildo de Araujo 24/03/2020 15:53:16 Caros, O código estava funcionando. agora apresenta erro quando clico no Comando30 e eu não consigo saber o motivo: Erro 438: o objeto não aceita esta propriedade ou método. Private Sub Comando30_Click() Me!AcroPDF0.LoadFile "\\s3dcag044\Arquivos\Gestor\Informe\Desempenho.pdf" 'carrega arquivo no ActiveX End Sub Private Sub Form_Load() 'Dimensiono a tela do PDF para 27 x 15.5cm Me.AcroPDF0.Width = 568 * 27 Me.AcroPDF0.Height = 518 * 15.5 End Sub Jaildo de Araujo 24/03/2020 15:52:25 Caros, O código estava funcionando. agora apresenta erro quando clico no Comando39 e eu não consigo saber o motivo: Erro 438: o objeto não aceita esta propriedade ou método. Private Sub Comando30_Click() Me!AcroPDF0.LoadFile "\\s3dcag044\Arquivos\Gestor\Informe\Desempenho.pdf" 'carrega arquivo no ActiveX End Sub Private Sub Form_Load() 'Dimensiono a tela do PDF para 27 x 15.5cm Me.AcroPDF0.Width = 568 * 27 Me.AcroPDF0.Height = 518 * 15.5 End Sub Jaildo de Araujo 24/03/2020 15:52:21 Caros, O código estava funcionando. agora apresenta erro quando clico no Comando39 e eu não consigo saber o motivo: Erro 438: o objeto não aceita esta propriedade ou método. Private Sub Comando30_Click() Me!AcroPDF0.LoadFile "\\s3dcag044\Arquivos\Gestor\Informe\Desempenho.pdf" 'carrega arquivo no ActiveX End Sub Private Sub Form_Load() 'Dimensiono a tela do PDF para 27 x 15.5cm Me.AcroPDF0.Width = 568 * 27 Me.AcroPDF0.Height = 518 * 15.5 End Sub |