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


2 participantes

    [Resolvido]Formulário X Word x Inserir Imagem/Figura

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Formulário X Word x Inserir Imagem/Figura

    Mensagem  vileman 6/4/2012, 04:53

    Uso Access 2003 - Windows 7 64 bits

    Busquei neste Fórum e no Google, mas não encontrei nada que ajudasse porisso peço a ajuda dos colegas no seguinte:

    1) Usando uma rotina copiada aqui deste Fórum criada pelo nosso colega Criquio, para criar um Documento Word a partir de um Formulário colocando os devidos campos através de indicadores no Word, até aqui tudo bem, acontece que estou precisando inserir um Controle Imagem que é colocado neste mesmo Formulário e que tem um Campo tipo texto (Nome: FotoPessoa) que mostra o caminho desse arquivo .jpg, ou seja, quando fizer a geração do documento Word que esse controle da imagem fosse também colocado no documento que é gerado, como fazer, alguém já fez algo similar de colocar a imagem no Word usando um Formulário Access ?
    Para ilustrar melhor abaixo segue a rotina usada:

    Private Sub BtWord_Click()
    'OBRIGATÓRIO: Marcar Referência: Microsoft Word xx.x Object Library
    Dim ntram
    ntram = MsgBox("Deseja gerar um novo Documento WORD ?" & vbCr & "Confirma INCLUSÃO ?" & vbCr & "ALERTA: Caso já tenha sido gerado, o L.D.B. anterior será substituído pelo Arquivo-Matriz!", vbQuestion + vbYesNo, "Sistema - Confirmação")
    If ntram = 6 Then 'INÍCIO 1º IF
    #Const DESENV = -1

    On Error GoTo TrataErro
    Dim oApp As Object 'Cria uma variável objeto
    Dim strSQL As String

    'Inicia o MS Word
    Set oApp = CreateObject("Word.Application") 'Cria e abre o objeto Word

    With oApp
    .Visible = True ' Torna o MS Word visível
    .Documents.Open ("Q:\ARGUS\MatrizLDB_PF.doc") ' Abre o documento base
    'Move cada campo para o indicador definido no Documento-Base
    .ActiveDocument.Bookmarks("Campo01").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!NomeIDTombo))
    .ActiveDocument.Bookmarks("Campo02").Select
    .Selection.Text = (Format(Forms!F30_LDBPessoas!CodPessoa))
    .ActiveDocument.Bookmarks("Campo04").Select
    .Selection.Text = (CStr(IIf(IsNull(FotoPessoa), "SEM FOTO", " ")))
    .ActiveDocument.Bookmarks("Campo05").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!NomePessoa))
    .ActiveDocument.Bookmarks("Campo06").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!ApelidoPessoa))
    .ActiveDocument.Bookmarks("Campo07").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!RG_Numero))
    .ActiveDocument.Bookmarks("Campo08").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!RG_OrgaoEmissor)) & " - " & (CStr(Forms!F30_LDBPessoas!RG_UFOrgaoEmissor)) & " - " & (CStr(Forms!F30_LDBPessoas!RG_DataEmissao))
    .ActiveDocument.Bookmarks("Campo09").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!CPFPessoa))
    .ActiveDocument.Bookmarks("Campo10").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!NomeMae))
    .ActiveDocument.Bookmarks("Campo11").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!NomePai))
    .ActiveDocument.Bookmarks("Campo12").Select
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!Endereco)) & " - " & (CStr(Forms!F30_LDBPessoas!Complemento)) & " - " & (CStr(Forms!F30_LDBPessoas!Bairro)) & " - " & (CStr(Forms!F30_LDBPessoas!Cidade)) & " - " & (CStr(Forms!F30_LDBPessoas!Estado))
    .ActiveDocument.Bookmarks("Campo13").Select
    .Selection.Text = (CStr(IIf(IsNull(TituloAnexo), " ", "TÍTULO DO MAPA: " & (CStr(Forms!F30_LDBPessoas!TituloAnexo)))))
    'Salva o arquivo gerado
    .ActiveDocument.SaveAs "Q:\ARGUS\13.Imagens\Pessoas\" & "LDB_PF " & Replace(Me.NomePessoa, "/", "-") & ".doc"
    'MsgBox "Documento WORD gerado com sucesso...", vbInformation
    'Fecha o documento
    .ActiveDocument.Close
    End With
    'Fecha o Word
    oApp.Quit

    Dim X As String
    X = "Q:\ARGUS\13.Imagens\Pessoas\" & "LDB_PF " & Replace(Me.NomePessoa, "/", "-") & ".doc"
    Dim Word As New Word.Application
    With Word
    .Documents.Open X
    .Visible = True
    .WindowState = wdWindowStateMaximize

    Dim w As String 'ROTINA: Abrir arquivo automaticamente após ser gerado (25/01/2012)
    Dim y As String
    w = "Q:\ARGUS\13.Imagens\Pessoas\"
    y = "Q:\ARGUS\13.Imagens\Pessoas\" & "LDB_PF " & Replace(Me.NomePessoa, "/", "-") & ".doc"
    Shell "C:\WINDOWS\explorer.exe """ & y & "", vbNormalFocus
    End With

    Me.BtWord.Visible = True 'Torna o Controle-Imagem 'BtWord' VÍSIVEL
    Me.RotuloWord.Visible = True 'Torna o Controle-Rótulo 'RotuloWord' VÍSIVEL
    'Libera a memória
    Set oApp = Nothing
    Saida:
    Exit Sub

    TrataErro:
    'Se um campo do formulário estiver vazio, remove o texto do Indicador e continua
    If Err.Number = 94 Then
    oApp.Selection.Text = ""
    Resume Next
    End If
    MsgBox "Form_F30_LDBPessoas - btWord_Click" & vbCrLf & Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
    #If DESENV Then
    oApp.Quit
    Set oApp = Nothing
    Stop
    Resume
    #End If
    Resume Saida
    End If 'FIM 1º IF
    End Sub

    PS: No Documento matriz do Word criei o Indicador "Campo03", que é justamente o Campo da Imagem (tipo .jpg) que falta na rotina acima, por conta disso, não aparece nada no documento gerado, no local do Indicador correspondente.

    2) Nessa mesma rotina também gostaria que no campo "CPFPessoa" no documento gerado no Word fosse mostrada a máscara do CPF com pontos e traço correspondentes, tentei adaptar alguns exemplos citados neste Fórum, no entanto, não funcionou, pois ao gerar e abrir o documento no indicador correspondente mostra a palavra "Nulo". Abaixo estão as adaptações tentadas para o indicador do Campo09 X CPFPessoa acima:

    .Selection.Text = (CStr(Forms!F30_LDBPessoas!CPFPessoa.InputMask = "###.###.###/##")) 'DICA CRIQUIO
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!CPFPessoa.InputMask = "000.000.000\-00")) 'DICA JPAULO

    Este campo "CPFPessoa" é unicamente para CPF e está como tipo texto com tamanho 11, e no Formulário com Máscara de entrada = 000\.000\.000"-"00;;_


    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  criquio 6/4/2012, 11:52

    Olá! Faça o seguinte: insira uma imagem no documento, no local em que ela deve aparecer, selecione-a e insira o marcador como se fosse em uma palavra. No vba do Access, basta agora fazer algo assim:

    Código:
    .ActiveDocument.Bookmarks("Foto").Select
    .Selection.InlineShapes.AddPicture FileName:="C:\Pasta\Nomaimagem.jpg", LinkToFile:=False, SaveWithDocument:=True
    Informações extras sobre os atributos:
    LinkToFile: Se colocar True, vincula a imagem ao documento. Se colocar False, incorpora a imagem ao documento;
    SaveWithDocument: Coloque True para salvar a imagem no documento.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Formulário X Word X Inserir Imagem/Figura

    Mensagem  vileman 6/4/2012, 20:27

    Prezado Criquio,

    Fiz conforme sua orientação e funcionou perfeitamente, desde que seja apenas 1 determinada imagem fixa, no entanto, o Formulário é para cadastramento de várias Pessoas e por consequinte cada Pessoa tem uma Foto, então usei o seguinte teste:

    .ActiveDocument.Bookmarks("Campo03").Select
    .Selection.InlineShapes.AddPicture FileName:="Forms!F30_LDBPessoas!foto", LinkToFile:=False, SaveWithDocument:=True

    Onde: "Campo03" é o nome do Indicador no Documento-Base do Word
    "foto" é o campo (tipo texto) onde é gravado o caminho do arquivo de cada foto inserida (OBS: o caminho é buscado em um Drive de Rede)

    Ao gerar o Documento Word com a rotina acima, apareceu a mensagem:
    "Erro 5152 - Form_F30_LDBPessoas - btword_Click. O nome do documento não é válido. Tente uma ou mais das seguintes opções:
    * Verifique o caminho para certificar-se de que foi digitado corretamente.
    * Selecione um arquivo da lista de arquivos e pastas." Ao clicar em "OK" desta mensagem, aponta para a linha com destaque em amarelo: "Stop" no código do VBA copiado no início deste tópico.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  criquio 6/4/2012, 20:44

    Try this way:

    Código:
    .Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!foto & "", LinkToFile:=False, SaveWithDocument:=True


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Formulário X Word X Inserir Imagem/Figura

    Mensagem  vileman 6/4/2012, 21:26

    Grande Criquio, funcionou perfeitamente, você é o cara!

    Agora para encerrar este tópico falta a 2ª pendência abaixo, alguém se habilita ?

    2) Nessa mesma rotina também gostaria que no campo "CPFPessoa" no documento gerado no Word fosse mostrada a máscara do CPF com pontos e traço correspondentes, tentei adaptar alguns exemplos citados neste Fórum, no entanto, não funcionou, pois ao gerar e abrir o documento no indicador correspondente mostra a palavra "Nulo". Abaixo estão as adaptações tentadas para o indicador do Campo09 X CPFPessoa acima:

    .Selection.Text = (CStr(Forms!F30_LDBPessoas!CPFPessoa.InputMask = "###.###.###/##")) 'DICA CRIQUIO
    .Selection.Text = (CStr(Forms!F30_LDBPessoas!CPFPessoa.InputMask = "000.000.000\-00")) 'DICA JPAULO

    Este campo "CPFPessoa" é unicamente para CPF e está como tipo texto com tamanho 11, e no Formulário com Máscara de entrada = 000\.000\.000"-"00;;_
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  criquio 6/4/2012, 21:36

    Talvez funfe assim:

    Código:
    .Selection.Text = CStr(Format(Forms!F30_LDBPessoas!CPFPessoa, "###,###,###,-##))

    Caso não dê certo, tente trocar as cerquilhas pelo número zero.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Formulário X Word X Inserir Imagem/Figura

    Mensagem  vileman 6/4/2012, 23:44

    Mestre Criquio,

    Seguindo sua orientação e após alguns testes, funcionou da seguinte forma:

    .Selection.Text = CStr(Format(Forms!F30_LDBPessoas!CPFPessoa, "###\.###\.###\-##"))

    Valeu pela força mais uma vez, muito obrigado e Boa Páscoa a você e todos do Fórum.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  criquio 7/4/2012, 00:14

    Ótimo! Grato pelo retorno.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Formulário X Word X Inserir Imagem/Figura

    Mensagem  vileman 7/4/2012, 03:39

    Caro Criquio,

    Desculpe está reabrindo este tópico depois de colocar o "Resolvido", mas é que surgiu uma situação nova, que até então não havia visto e testado: Quando não houver uma imagem para ser inserida como fica o código para deixar vazio no Documento Word gerado, haja visto que só agora percebi que nem sempre haverá uma Foto, e que também nesse caso não pretendo usar uma imagem tipo "SemFoto.jpg", pois haverá outros casos semelhantes a esse que terei que usar em outros Formulários, então, mesmo que usasse esse recurso, iria acabar precisando desse novo código, agradeço a atenção mais uma vez.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  criquio 7/4/2012, 03:45

    Use o If para verificar se o campo não está vazio.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Formulário X Word X Inserir Imagem/Figura

    Mensagem  vileman 7/4/2012, 22:07

    Usei o If da seguinte forma:

    PS: é usado com outro Campo (tipo Texto), mas a rotina é a mesma que captura o caminho da imagem.

    If IsNull(ImagemMapa) Or IsEmpty(ImagemMapa) Then
    Forms!F30_LDBPessoas!ImagemMapa = " "
    Else
    .ActiveDocument.Bookmarks("Campo14").Select
    .Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!ImagemMapa & "", LinkToFile:=False, SaveWithDocument:=True
    End If

    Resultado: Antes de usar o If acima ocorria o erro 5152 (ver texto completo nas mensagens anteriores), após o If acima não ocorreu mais esse erro, no entanto, quando abre o novo Documento gerado pelo Word, mostra justamente a imagem que ficou no Indicador do campo correspondente, conforme suas primeiras instruções. Já tentei fazer de outras formas, mas também não consegui, pois não sei como "apagar" o Indicador no Word quando é Imagem, ou seja, consegui apenas resolver o erro citado, mas não excluir a Imagem do Documento gerado quando o Campo "ImagemMapa" é vazio.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  criquio 7/4/2012, 22:26

    Talvez assim:

    Código:
    .ActiveDocument.Bookmarks("Campo14").Select
    If Not IsNull(Me.ImagemMapa) Then
    .Selection.InlineShapes.AddPicture FileName:="" & Forms!F30_LDBPessoas!ImagemMapa & "", LinkToFile:=False, SaveWithDocument:=True
    Else
    .Selection.Delete
    End If
    Talvez, dependendo da situação, pode ser que seja mais funcional ter uma imagem transparente para colocar ao invés de excluir a imagem do controle. Teste e veja o que funciona melhor.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty [Resolvido] Formulário X Word X Inserir Imagem/Figura

    Mensagem  vileman 8/4/2012, 18:32

    Mais uma vez obrigado Criquio, funcionou perfeitamente, usando o seu último código e também com a imagem transparente no Documento-Base do Word.

    Se pudesse lhe daria uma Ovo de Páscoa, como não dá, lhe desejo muita Paz e Saúde a você e toda sua família, Feliz Páscoa.

    Conteúdo patrocinado


    [Resolvido]Formulário X Word x Inserir Imagem/Figura Empty Re: [Resolvido]Formulário X Word x Inserir Imagem/Figura

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 03:25