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

    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????
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1402
    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.
    avatar
    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: Seg 20 Nov 2017, 05:45