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

    Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Compartilhe

    wyss2000
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 05/06/2011

    Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Mensagem  wyss2000 em 26/7/2013, 22:23

    Prezados, fiz uma busca no fórum mas não encontrei o que preciso então estou abrindo um novo tópico.

    Tenho um utilitário criado por mim mesmo para emissão de solicitação de cotações e de autorização de fornecimento aos nossos fornecedores. Inicialmente estava em Access 2003 mas agora estou redesenhando ele em 2010.
    Meu problema é o seguinte: emitimos contratos via Word e que facilmente chegam a 50 páginas cada e não podem de forma alguma serem alterados pois são padrão da empresa porém eu queria utilizar o meu BD para gerar estes contratos de forma otimizada sem a necessidade de abrir o Word e ficar procurando os campos a serem preenchidos pois isto além de dar muito trabalho ainda podemos esquecer algum campo.

    Os relatórios são simplificadamente assim:

    Número do contrato, dados do fornecedor, ...

    "aqui está a parte difícil para a mala direta"
    1ª listagem dos itens a serem adquiridos com seus preços;

    2ª listagem (com os mesmos itens da 1ª listagem) com os locais de entrega.


    Tenho todas as informações necessárias em meu BD e já utilizo em um relatório Access simplificado onde os itens não repetem e o salvamos em PDF para enviar aos fornecedores porém em alguns casos o simplificado não pode ser utilizado, somente o contrato oficial com os itens repetidos.

    Alguém poderia dar uma mão por favor?

    Obs.: Não tenho o modelo do contrato comigo pois estou em férias mas se alguém puder me ajudar eu pego na empresa e posto pra vocês.

    Obrigado
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Mensagem  Dilson em 27/7/2013, 18:45

    word - Combina Access com Word

    wyss2000
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 05/06/2011

    É quase isto

    Mensagem  wyss2000 em 27/7/2013, 20:52

    Boa tarde Dilson,

    Abri os dois arquivos e vi as duas técnicas utilizadas sendo a primeira de substituição de texto e a segunda de inclusão de texto mas ainda existem algumas dificuldades nestes métodos e o modelo em questão não permite uma visualização prévia ou o salvamento em rtf ou doc antes da impressão jogando diretamente para impressão.

    Método de substituição -
    - Dá para utilizar dentro de tabelas existentes no documento original como uma mala direta comum do Word porém parece não servir para utilização com subrelatórios extensos ou quando não se sabe a quantidade de subitens.

    Método de inclusão de texto -
    - Achei muito bom este método e com ele dá para repetir as sequências de itens, 1ª (com preços) e 2ª (com locais de entrega), sem problemas mas restam algumas dúvidas também.

    Dúvidas:
    1) Dá pra utilizar a inclusão no meio de um texto existente ou em algum ponto específico do texto e não somente no final (insertafter) ou no início (insertbefore) dele?
    2) Dá pra utilizar a inclusão com tabela?
    3) Dá pra salvar em rtf ou doc e logo em seguida abrir o arquivo ao invés de imprimir?
    4) Se der para salvar em rtf ou doc, dá para formatar um nome padrão para salvamento com a utilização de algum campo por exemplo número de pedido ou nome do cliente?

    Sei que são muitas as questões mas agradeço se puderem ajudar. Obrigado
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Mensagem  Dilson em 27/7/2013, 23:09

    Estude este exemplo de autoria de Roger Carlson, nele tem o que precisas, pois o protótipo transporta para um doc do word, dados em tabelas relacionais:

    [Você precisa estar registrado e conectado para ver este link.]

    wyss2000
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 05/06/2011

    Tá quase

    Mensagem  wyss2000 em 28/7/2013, 20:35

    Oi Deilson,

    Primeiro, muito obrigado por estar me ajudando com minhas dúvidas.

    Tive um problema inicial e ao rodar a aplicação dava o erro "Esta pasta de trabalho perdeu seu projeto do VBA, controles ActiveX e outros recursos relacionados à programação", mas na ajuda do Excell descobri que estavam faltando os "Recursos Compartilhados" e foi só reinstalar para acabar este problema.
    Um outro problema que identifiquei foi que o gráfico não estava sendo colado no Word e os documentos não estavam sendo fechados e nem gravados. O Access apresenta uma janela de erro "Error 9 Subscrito fora do intervalo". Para este erro eu também encontrei a solução:
    - Conforme consta no arquivo de instruções AutomatingWordFromAccess.doc deveria haver uma análise para o Erro 9 que foi removida ou não criada no Módulo do Access dificultando a identificação do erro para isto é necessário incluir as linhas abaixo antes do "Case Else" no módulo:
    Case 9 ' Subscript out of range - worksheet not found
               'Close stranded applications
               objXLBook.Close SaveChanges:=False
               objXLApp.Quit
               objWord.ActiveDocument.Close SaveChanges:=False
               objWord.Quit
               MsgBox rsReportData!medication & " worksheet not found"

    Fazendo isto, o erro ficará mais claro "ASPIRIN worksheet not found" então é só deixar a planilha e o record (registro) com os mesmos nomes e os arquivos serão criados e salvos.

    Com relação às minhas dúvidas anteriores, seguem:
    Dúvidas respondidas:
    1) Dá pra utilizar a inclusão no meio de um texto existente ou em algum ponto específico do texto e não somente no final (insertafter) ou no início (insertbefore) dele? Sim, utilizando bookmarks como no exemplo de Roger Carlson ou com substituição de strings como no exemplo do VieiraSoft.
    3) Dá pra salvar em rtf ou doc e logo em seguida abrir o arquivo ao invés de imprimir? Sim, através de códigos vba como no exemplo do Roger.
    4) Se der para salvar em rtf ou doc, dá para formatar um nome padrão para salvamento com a utilização de algum campo por exemplo número de pedido ou nome do cliente? Sim, também como no exemplo do Roger.

    Dúvida que permanece:
    2) Dá pra utilizar a inclusão com tabela?
    Neste caso, com o exemplo do Roger, parece que é possível copiar além do gráfico uma sequência de células formatadas do Excell para colá-las no Word como uma tabela porém, a minha pergunta especificamente seria se é possível inserir uma sequência de subitens dentro de uma tabela simples criada dentro do próprio Word e não criada externamente.
    Copiando a tabela do Excell eu tenho dados estáticos porém, no caso do contrato a ser impresso, os itens são dinâmicos e mudam (são diferentes) a cada novo registro principal (nº do contrato).

    A minha pergunta é se seria possível utilizar o "método de inclusão" do exemplo do VieiraSoft para além de incluir os dados incluir a formatação de tabela ou se seria possível incluir os itens em uma tabela do Word que fosse dinâmica e que aumentasse a quantidade de linhas automaticamente conform a quantidade de itens.

    Com estas 3 ferramentas, "substituição de strings no Word", "inclusão de linhas no início ou final do Word" e "utilização de bookmarks do Word via Access" já dá para fazer muita coisa mesmo mas ainda me falta a possibilidade da inclusão de tabela dinâmica no meio de um texto do Word que até agora ainda não consegui vislumbrar.

    Dilson, você consegue me passar o link do arquivo "ExportToExcelCharts2k.mdb" que é mencionado neste exemplo? A planilha Myspreedsheet.xls possui códigos vba ou activex que talvez o arquivo mencionado possa auxiliar a entender.

    Se souberem outras técnicas para inclusão de subitens (subregistros/subrecords) no meio de um texto do Word, via Access, eu ainda conto com a ajuda de vocês.

    Muito obrigado mais uma vez.
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Mensagem  Dilson em 29/7/2013, 13:51

    A técnica para incluir os itens já está pronta nesse exemplo, bastará determinar o preenchimento do valor do campo ReportId em ambas as tabelas e a captura para que a rotina execute os dados de acordo com o ReportId selecionado.

    Repare que os subitens aparecem de acordo com a chave estrangeira e como não estamos definindo qual na abertura está vindo sempre o ReportId de valor 1

    Que no relatório lista somente os subitens nomeados = "Patients 1"

    Eu fiz um rápido teste e respondeu como eu pensava, veja:

    Abri o módulo e logo após o tratamento de erro da rotina coloquei:

    Dim id As Integer
    id = 2

    Na mesma rotina no trecho:
    'find and write exclusion data
    strsql = "SELECT ReportID, Exclusion " & _
    "FROM ExclusionData " & _
    "WHERE ReportID=" & rsReportData!ReportID

    Modifiquei para:
    'find and write exclusion data
    strsql = "SELECT ReportID, Exclusion " & _
    "FROM ExclusionData " & _
    "WHERE ReportID=" & id

    Os subitens motraram-se como: "Patients 2"

    Só precisei referenciar.

    É o que precisarás estudar para adaptar.

    Uma sugestão é dá uma enxugada de trechos que não vai precisar como a automação de dados para o excel.




    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1707
    Registrado : 11/11/2009

    Re: Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Mensagem  Dilson em 29/7/2013, 14:04

    Olha na mensagem n° 15:
    [Resolvido]Exportação de Access para Word

    wyss2000
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 05/06/2011

    Na reta final

    Mensagem  wyss2000 em 29/7/2013, 23:01

    Boa tarde Deilson e mais uma vez obrigado pelas ajudas que vem me dando.

    Vamos lá então ao exemplo que você me deu:
    No zip do Criquio, tem 2 arquivos um doc e um mdb, o doc abriu normalmente porém o mdb já deu um erro na primeira abertura: "O banco de dados ou projeto do Microsoft Access contém uma referência desfeita ou ausente no arquivo "MSWORD.OLB" versão 8.4" e ao tentar clicar no botão Finalizar Venda ocorre outro erro "Erro de compilação: É impossível localizar o projeto ou a biblioteca".

    OK, vamos procurar na internet pra ver se resolvo...
    Pesquisando na internet, encontrei que se trata de uma referência ausente do VBA portanto, seguindo as diretrizes fui no VBA em Ferramentas e depois em Referências e desmarquei a caixa "AUSENTE: Microsoft Word 12.0 Object Library" e substitui pelo "Microsoft Word 11.0 Object Library" e, como por um passe de mágica, ele me abriu o doc já com os dados e a tabela preenchida. SIMPLESMENTE EXCELENTE.

    Desculpa mais uma vez ser tão detalhista mas, vocês conhecem alguma forma de fazer esta inclusão na tabela em linhas distintas? O exemplo do Criquio é excelente como disse porém ele coloca toda uma sequência de dados na mesma célula o que não permite colocar uma linha divisória entre estes itens.

    Acabei de pensar uma besteira que pode dar certo mas eu não sei como aplicá-la e testá-la via código: fazer a transferência dos subitens como texto para o Word e, através de códigos VBA dentro do access fazer a conversão deste texto em tabela simples do Word e assim teríamos a tabela e a divisão em linhas também.

    Perguntinhas idiotas:
    * Estou tentando ver os índices criados no Word mas o máximo que consigo é visualizar um ponteiro cinza nos locais de substituição. Não sou tão aprofundado no Word e estou procurando na net algum comando para exibir itens ocultos mas não encontrei.
    * Se não sair do tema e puder me responder, estou tendo problemas com campos data que estão preenchendo sozinhos o horário também. Preciso dos meus campos 100% data e nada de hora, pode indicar algum tópico ou tema?

    Muitíssimo obrigado outra vez e se não descobrir uma forma de inserir dados em tabelas com linhas distintas eu já estou por demais contente com todos exemplos aqui apresentados e por sua paciência.

    Grato, Wesley.

    wyss2000
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 05/06/2011

    Linhas "fake" para tabela Word

    Mensagem  wyss2000 em 29/7/2013, 23:09

    Oi Deilson,

    Testei outra coisa que me veio à cabeça agora e, mesmo com uma linha só eu consegui criar linhas fake (separações), tá certo que não são linhas contínuas mas já ajuda bastante na separação mais clara. Segue o meu doc alterado para você visualizar como ficou.

    O fake foi criado selecionando a linha da tabela e na opção "bordas e sombreamento". Selecionar "Aplicar a... Parágrafo" e inserir a linha horizontal de divisória. A cada novo parágrafo ele insere uma linha contínua ou tracejado à escolha dando a impressão que é uma outra célula mas não é. Em vez de ter linhas de verdade eu só tenho uma separação visual.

    Se não tem cão, caça com gato né??? E quando descobrir um novo tipo de preenchimento com células distintas eu agradeço muitíssimo se puder me avisar.

    Grato +
    Anexos
    Recibo.doc
    Você não tem permissão para fazer download dos arquivos anexados.
    (30 Kb) Baixado 21 vez(es)

    wyss2000
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 05/06/2011

    Nova dúvida

    Mensagem  wyss2000 em 4/8/2013, 00:53

    Utilizando o último exemplo do Criquio que me enviou ou outro, existe alguma forma de fazer a inserção de várias tabelas através de código? Importante: Não se sabe a quantidade de tabelas que pode variar de 1 até umas 15 dependendo do contrato.

    Seria uma divisão por lotes como no exemplo abaixo:

    LOTE I
    ITEM DESCRIÇÃO
    01 PREGO 3/8 CABEÇA CHATA
    04 PARAFUSO SEXTAVADO DE AÇO

    LOTE II
    ITEM DESCRIÇÃO
    02 CANALETA
    03 RUFO

    Obrigado mais uma vez.
    avatar
    Ari
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 84
    Registrado : 28/11/2009

    Re: Exportar relatório Access 2010 para formato RTF ou DOC mantendo a formatação

    Mensagem  Ari em 13/4/2018, 00:39

    Desde 2013 sem resposta. A mesma que eu espero na minha postagem recente.

      Data/hora atual: 21/9/2018, 03:52