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

    Enviar só o formulario atual

    avatar
    jocaquinha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    Enviar só o formulario atual Empty Enviar só o formulario atual

    Mensagem  jocaquinha 21/3/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
    Cláudio Machado
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    Enviar só o formulario atual Empty Re: Enviar só o formulario atual

    Mensagem  Cláudio Machado 21/3/2013, 22:26

    Código do amigo Avelino Sampaio.

    ou se preferir, visite o site dele:

    http://www.usandoaccess.com.br/dicas/dica8.asp?id=1#inicio

    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  AQUI.
    Não esqueça de clicar no Joinha Enviar só o formulario atual 90dssg para agradecer a dica que solucionou seu problema.
    Caio
    Caio
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Enviar só o formulario atual Empty Re: Enviar só o formulario atual

    Mensagem  Caio 14/7/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

    Conteúdo patrocinado


    Enviar só o formulario atual Empty Re: Enviar só o formulario atual

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 12:12