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]Módulo Access que execute Mala Direta Word

    avatar
    climb1
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 18/11/2015

    [Resolvido]Módulo Access que execute Mala Direta Word Empty [Resolvido]Módulo Access que execute Mala Direta Word

    Mensagem  climb1 24/1/2022, 20:52

    Primeiro antes de entrar na ajuda que preciso, tentei contribuir com meu humilde conhecimento e entrei um-a-um dos grupos (Tabelas, consultas...) e todos os tópicos já estavam com respostas ou resolvidos. Que coisa bacana hein!!! Parabéns a todos os craques do Access!!!

    Agora vamos ao que eu preciso de ajuda.

    Meu ambiente: Win 10 BR, Office Pro 2021 BR, tudo rodando maravilhosamente bem, graças ao Bill Gates, Intel e meu cuidado no uso Smile

    Tenho um database que, via módulo eu já tenho o 2 resultados prontinhos e funcionando, sendo eles:

    1: print de um resultado em SQL (uma consulta simples). Que, se necessário posso jogar para um array, enfim, tá lá rodando e me reportando a listagem que preciso. Vamos aqui imaginar que é uma lista com Nome; Endereco; Telefone.
    2: Meu módulo abre uma instância e executa o Word em tela abrindo arquivo pré-existente Word tipo MalaDireta, ou seja que tem lá um texto padrão e os campos de Mala Direta [Nome]; [Endereco]; [Telefone].

    Ou seja, já tenho a Lista de um lado carregado no meu módulo, também já tenho o Word com o Arquivo de Mala Direta aberto do outro lado também via meu módulo, agora o que preciso é que o Word execute essa Mala Direta via módulo, ele faça o que o usuário faria manualmente via Menus, ir lá executar a Mala Direta e Salvar Como esse arquivo com o nome "Ruy Mala.docx". Então é isso que preciso de ajuda dos craques aqui Smile

    E a minha listagem é apenas um resultado de um openrecordset que é uma tabela (ou consulta) com os dados a serem usados na MalaDireta.

    Tabela Listagem
    Campos
      - Nome;
      - Endereco;
      - Telefone;

    Listagem para ser utilizada na Mala Direta é o resultado do:

    public db as DAO.database
    dim rs as DAO.recordset
    dim tb as string 'tabela

    tb="Listagem"
    set db=currentdb
    set rs=db.openrecordset(tb)
    ... bom... aqui já tenho o resultado da minha listagem ...

    e em outro módulo eu abro o "MinhaMalaDireta.docx" que é meu arquivo do Word que lá tem os fields [Nome] [Endereco] e [Telefone]

    OJá antecipo um obrigado pela ajuda!! Smile
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2594
    Registrado : 13/12/2016

    [Resolvido]Módulo Access que execute Mala Direta Word Empty Re: [Resolvido]Módulo Access que execute Mala Direta Word

    Mensagem  Alexandre Fim 24/1/2022, 21:14

    Olá Ruy,
    Apenas um pitaco !!!

    O Access é uma ferramenta bem completa e que é possível criar mala direta sem utilizar outros softwares (Excel, Word e etc), com a possibilidade de exportar essa mala direta para .PDF, que é uma extensão onde é possivel abrir em qualquer navegador, celular, tablet e etc.

    Minha sugestão é criar um relatório, com os campos necessários, e executar esse relatório através de filtro e etc.
    Existe tmb a possibilidade de enviar este arquivo como anexo via Outlook, usando objetos do próprio Access também.

    Espero ter ajudado.

    Abs
    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Módulo Access que execute Mala Direta Word Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    climb1
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 18/11/2015

    [Resolvido]Módulo Access que execute Mala Direta Word Empty Re: [Resolvido]Módulo Access que execute Mala Direta Word

    Mensagem  climb1 24/1/2022, 21:21

    Oi Alexandre, sim entendo, mas é que a pessoa já possui dezenas de arquivos enormes em Word com diversas formatações que seriam complicadíssimas de fazer via Relatório do Access, enfim, imagine um só exemplo de um arquivo do Word com 30 páginas, tendo tabelas, texto em colunas, justificado, tabulações, tópicos, etc e que já rodam a mala-direta pegando os dados do Access, só que toda vez o cabra precisa ir lá no Menu, entrar no assistente de mala direta, fazer aqueles 6 passos até Mesclar os dados...enfim.... inviável migrar isso para um Relatório do Access.

    Será bem mais prático só fazer o módulo Mesclar a Mala Direta do arquivo que já está pronto e com os fields lá <> <> ....

    Eu travei apenas nessa parte, de como fazer o módulo executar o "Mesclar" do Word e gerar o arquivo mesclado. Fui até a parte que abre o arquivo com a matriz da mala direta antes da mesclagem dos dados.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2594
    Registrado : 13/12/2016

    [Resolvido]Módulo Access que execute Mala Direta Word Empty Re: [Resolvido]Módulo Access que execute Mala Direta Word

    Mensagem  Alexandre Fim 24/1/2022, 21:31

    Ahhh...Entendi!!!
    Realmente fica mais viável manter os arquivos em .docx.

    Neste caso, é necessário utilizar um CreateObject(Word.Application), onde você consegue utilizar todas as propriedades do documento desejado neste objeto (em memória) e setar os dados do Access nos "fields" deste documento e depois salvá-lo com outro nome, mantendo o modelo.

    Acredito que tem alguns exemplos deste tipo aqui no fórum.
    Faz uma busca e caso vc não achar, compartilhe aqui uma cópia do seu bd (somente objetos envolvidos: tabelas/consultas/modulos e etc) e um dos modelos de mala direta para analise e solução.

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Módulo Access que execute Mala Direta Word Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    climb1
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 18/11/2015

    [Resolvido]Módulo Access que execute Mala Direta Word Empty Re: [Resolvido]Módulo Access que execute Mala Direta Word

    Mensagem  climb1 24/1/2022, 23:29

    Alexandre, pronto, fiz um database rapidex aqui e um arquivo do word como exemplo.

    Veja, super simples a funcionalidade, é um word que usa os dados do Access na Mala Direta.

    Só que para isso eu tive que entrar no Menu do Word de Mala Direta e pedir para Mesclar.

    Olhando via Access o Botão já abre este mesmo arquivo do Word, tá lá bonitinho, só que precisa mesclar, e não sei como mesclar via VBA iniciado pelo Access.

    É só gravar os 2 arquivos na mesma pasta e executar o botão do formulário do Access, ele vai abrir o Word, Carregar o arquivo da Mala Direta o qual já está linkado com o Access, dai só falta mesmo Mesclar.
    Anexos
    [Resolvido]Módulo Access que execute Mala Direta Word AttachmentMinhaMalaDireta.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 27 vez(es)
    avatar
    climb1
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 18/11/2015

    [Resolvido]Módulo Access que execute Mala Direta Word Empty Re: [Resolvido]Módulo Access que execute Mala Direta Word

    Mensagem  climb1 25/1/2022, 12:38

    Olá pessoal,

    Consegui resolver com o código abaixo que adaptei de um video que achei na internet. Ou seja, quando clica no botão ele abre o arquivo Word tipo MalaDireta, faz a conexão e Mescla os dados. Exatamente o que eu precisava.

    Obrigado pela ajuda, não sei se eu mesmo consigo mudar o status para "Resolvido" deste post, mas caso seja somente o Admin pode colocar como Resolvido por favor.

    Segue o código e abaixo do código o link do video.

    Código:

    Option Compare Database
    Option Explicit

    Public WithEvents oApp As Word.Application
    Public strFileWord As String
    Public strPathFileWord As String
    Public objModelo As Object

    Private Sub Form_Load()

        strFileWord = "MinhaMalaDireta.docx"
        strPathFileWord = CurrentPath & strFileWord
        
        'Start Word
        Set oApp = CreateObject("Word.Application")
            
    End Sub

    Private Sub Command1_Click()

    Dim oMainDoc As Word.Document
    Dim oSel As Word.Selection
    Dim sDBPath As String
    Dim strDB As String

        strDB = "MalaDireta.accdb"

    'Start a new main document for the mail merge.
    '    Set oMainDoc = oApp.Documents.Add
        Set oMainDoc = oApp.Documents.Open(strPathFileWord)

    With oMainDoc.MailMerge

        .MainDocumentType = wdFormLetters

    'Set up the mail merge data source to Northwind.mdb.
            sDBPath = CurrentPath & strDB
            .OpenDataSource Name:=sDBPath, _
               SQLStatement:="SELECT * FROM [Listagem]"
    End With

    'Perform the mail merge to a new document.
        With oMainDoc
            .MailMerge.Destination = wdSendToNewDocument
            .MailMerge.Execute Pause:=False
        End With

    End Sub

    Private Sub oApp_MailMergeAfterMerge(ByVal Doc As Word.Document, ByVal DocResult As Word.Document)

    'When the mail merge is complete, 1) make Word visible,
        '2) close the mail merge document leaving only the resulting document
        'open and 3) display a message.
        Doc.Close False
        oApp.Visible = True
        MsgBox "Mesclagem Completa: " & oApp.ActiveDocument.Name

    End Sub

    Private Sub Form_Unload(Cancel As Integer)
        Set oApp = Nothing
    End Sub


    avatar
    Edu_rubio
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 24/01/2018

    [Resolvido]Módulo Access que execute Mala Direta Word Empty Segue exemplo retirado aqui do forum

    Mensagem  Edu_rubio 9/2/2022, 14:26

    veja o exemplo e faça as adaptações!
    bom estudo !

    ex.: retirado aqui do forum autor não declarado! [Resolvido]Módulo Access que execute Mala Direta Word 1f44d
    Anexos
    [Resolvido]Módulo Access que execute Mala Direta Word AttachmentAccessWord.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (111 Kb) Baixado 28 vez(es)

      Data/hora atual: 24/9/2022, 20:49