MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Enviar só o formulario atual

    Compartilhe

    jocaquinha
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 21/03/2013

    Enviar só o formulario atual

    Mensagem  jocaquinha em Qui 21 Mar 2013, 20:59

    Bom dia! Tenho um formulario já com o botao de enviar por email... porem ele manda todos os formularios da tabela. eu quero que ele envie somente o atual. Pode ser????

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1327
    Registrado : 17/03/2011

    Re: Enviar só o formulario atual

    Mensagem  Cláudio Machado em Qui 21 Mar 2013, 22:26

    Código do amigo Avelino Sampaio.

    ou se preferir, visite o site dele:

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

    Código:


    Private Sub Bot_Envia_Email_Click()
    Dim strArquivo  As String
    Dim strLocal    As String
    Dim objOut      As Object
    Dim objmail    As Object
    Dim objAnexo    As Object
    Const olMailItem = 0
    Const olByValue = 1

    If IsNull(Me!Id_Orçamento) Then Exit Sub

    '---------------------------------------------
    'Carregando a coleção do Outlook
    'Similar ao abrir o Outlook
    '---------------------------------------------
    Set objOut = CreateObject("Outlook.application")

    '------------------------------------------------------------
    'Abrindo o formulário de email para inserir os itens de email
    'Similar ao clicar no botão NOVO do Outlook
    '------------------------------------------------------------
    Set objmail = objOut.CreateItem(olMailItem)

    '------------------------------------------------------------
    'Abrindo a opção anexo
    'Similar ao clicar no botão ANEXO do Outlook
    '------------------------------------------------------------
    Set objAnexo = objmail.Attachments

    '---------------------------------------------------------------------------------
    'Indico o nome do arquivo pdf e o local que será gravado
    'O local que escolhi para gravar os arquivos de pdf gerados
    'é na pasta enviados, aonde se encontra o aplicativo.
    'Neste exemplo, gero os nomes dos arquivos, aproveitando o número exclusivo
    'do cliente.  Então os arquivos vão ficar com o aspecto: rlt1.pdf, rlt2.pdf, ...
    'É claro que vc poderá gerar o nome que achar mais conveniente.
    '---------------------------------------------------------------------------------
    strArquivo = "ORÇAMENTO Nº " & Format(Me!Id_Orçamento, "000000") & ".pdf"
    'imprime = MsgBox("Confirma impressão do Orçamento Nº:  " & Format(Id_Orçamento, "000000") & Chr(10) + Chr(13) & Txt_Cliente, vbQuestion + vbYesNo, "Imprimir")
    strLocal = CurrentProject.path & "\enviados\" & strArquivo

    'Salvando alterações no registro
    If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord

    '----------------------------------------------------------------------------
    'Abre o relatório filtrado e oculto de acordo com o cliente selecionado.
    '----------------------------------------------------------------------------
    DoCmd.OpenReport "ORÇAMENTOS_MATERIAIS", acViewPreview, , "ID_ORÇAMENTO = " & Me!Id_Orçamento, acHidden

    '----------------------------------------------------------------------------------------
    'gero o pdf do relatório através do comando outputto.
    'o mecanismo do Access reconhece que o relatório solicitado pelo outputto já está aberto
    'e então o outputto usará o relatório já aberto e filtrado.
    '-----------------------------------------------------------------------------------------
    DoCmd.OutputTo acOutputReport, "ORÇAMENTOS_MATERIAIS", acFormatPDF, strLocal

    '-------------------------------------------
    'fecha o relatório clientes que está oculto
    '-------------------------------------------
    DoCmd.Close acReport, "ORÇAMENTOS_MATERIAIS"

    '--------------------------------------------------------
    'adiciona o arquivo pdf no anexo
    '-------------------------------------------------------
    objAnexo.Add strLocal, olByValue, 1

    '-----------------------------------------------------------------
    'Mostra a tela de sáida de email que abrimos
    '-----------------------------------------------------------------
    objmail.Display


    '-------------------------------------------------------
    'Tudo já foi entregue ao outlook, então podemos esvaziar
    'a memoria do computador usada pelas variáveis
    '-------------------------------------------------------
    Set objAnexo = Nothing
    Set objmail = Nothing
    Set objOut = Nothing



    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Caio
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 301
    Registrado : 27/04/2015

    Re: Enviar só o formulario atual

    Mensagem  Caio em Qui 14 Jul 2016, 20:55

    Poderia me ajudar?
    Esta dando erro em uma parte, fala que não foi localizado.



    Private Sub Bot_Envia_Email_Click()
    Dim strArquivo As String
    Dim strLocal As String
    Dim objOut As Object
    Dim objmail As Object
    Dim objAnexo As Object
    Const olMailItem = 0
    Const olByValue = 1

    If IsNull(Me!Id_Orçamento) Then Exit Sub

    '---------------------------------------------
    'Carregando a coleção do Outlook
    'Similar ao abrir o Outlook
    '---------------------------------------------
    Set objOut = CreateObject("Outlook.application")

    '------------------------------------------------------------
    'Abrindo o formulário de email para inserir os itens de email
    'Similar ao clicar no botão NOVO do Outlook
    '------------------------------------------------------------
    Set objmail = objOut.CreateItem(olMailItem)

    '------------------------------------------------------------
    'Abrindo a opção anexo
    'Similar ao clicar no botão ANEXO do Outlook
    '------------------------------------------------------------
    Set objAnexo = objmail.Attachments

    '---------------------------------------------------------------------------------
    'Indico o nome do arquivo pdf e o local que será gravado
    'O local que escolhi para gravar os arquivos de pdf gerados
    'é na pasta enviados, aonde se encontra o aplicativo.
    'Neste exemplo, gero os nomes dos arquivos, aproveitando o número exclusivo
    'do cliente. Então os arquivos vão ficar com o aspecto: rlt1.pdf, rlt2.pdf, ...
    'É claro que vc poderá gerar o nome que achar mais conveniente.
    '---------------------------------------------------------------------------------
    strArquivo = "ORÇAMENTO Nº " & Format(Me!Id_Orçamento, "000000") & ".pdf"
    'imprime = MsgBox("Confirma impressão do Orçamento Nº: " & Format(Id_Orçamento, "000000") & Chr(10) + Chr(13) & Txt_Cliente, vbQuestion + vbYesNo, "Imprimir")
    strLocal = CurrentProject.path & "\enviados\" & strArquivo

    'Salvando alterações no registro
    If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord

    '----------------------------------------------------------------------------
    'Abre o relatório filtrado e oculto de acordo com o cliente selecionado.
    '----------------------------------------------------------------------------
    DoCmd.OpenReport "ORÇAMENTOS_MATERIAIS", acViewPreview, , "ID_ORÇAMENTO = " & Me!Id_Orçamento, acHidden

    '----------------------------------------------------------------------------------------
    'gero o pdf do relatório através do comando outputto.
    'o mecanismo do Access reconhece que o relatório solicitado pelo outputto já está aberto
    'e então o outputto usará o relatório já aberto e filtrado.
    '-----------------------------------------------------------------------------------------
    DoCmd.OutputTo acOutputReport, "ORÇAMENTOS_MATERIAIS", acFormatPDF, strLocal

    '-------------------------------------------
    'fecha o relatório clientes que está oculto
    '-------------------------------------------
    DoCmd.Close acReport, "ORÇAMENTOS_MATERIAIS"

    '--------------------------------------------------------
    'adiciona o arquivo pdf no anexo
    '-------------------------------------------------------
    objAnexo.Add strLocal, olByValue, 1

    '-----------------------------------------------------------------
    'Mostra a tela de sáida de email que abrimos
    '-----------------------------------------------------------------
    objmail.Display


    '-------------------------------------------------------
    'Tudo já foi entregue ao outlook, então podemos esvaziar
    'a memoria do computador usada pelas variáveis
    '-------------------------------------------------------
    Set objAnexo = Nothing
    Set objmail = Nothing
    Set objOut = Nothing

    End Sub

      Data/hora atual: Sex 09 Dez 2016, 09:37