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

    Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Compartilhe
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 1/11/2018, 23:21

    Boa noite galera.
    Andei sumido, pois estava andando por outros caminhos da programação.
    Agora um cliente precisa de alterações no sistema que fiz pra ele. só que está dando um pau aqui.

    Tenho um form de proposta ao qual o usuário envia ao cliente dele, chega perfeitamente no email.
    O problema é que quando vou mexer na estrutura da tabela o access informa que a tabela ainda está aberta mesmo com o form fechado e não rodando em rede, além disso não consigo mexer em propriedades do form e outros. Ou seja, após o envio ele mantém a tabela aberta e buga tudo. Se não enviar email funciona normal.

    Eis o código do botão:

    Código:

    If IsNull(Me.cliente) Then
        MsgBox "Escolha um Cliente.", vbCritical, "Atenção"
    ElseIf IsNull(Me.referencia) Then
        MsgBox "Digite a Referência da Proposta.", vbCritical, "Atenção"
    ElseIf IsNull(Me.prazo_entrega) Then
        MsgBox "Informe o Prazo de Entraga.", vbCritical, "Atenção"
    ElseIf IsNull(Me.cond_pagamento) Then
        MsgBox "Informe a Condição de Pagamento.", vbCritical, "Atenção"
    ElseIf IsNull(Me.embalagem) Then
        MsgBox "Falta informações da Embalagem.", vbCritical, "Atenção"
    ElseIf IsNull(Me.tipo_transporte) Then
        MsgBox "Escolha o Tipo de Transporte.", vbCritical, "Atenção"
    Else
    If MsgBox("Confirma o Envio da Proposta Nº " & Format([id_proposta_gerado], "000000") & vbCrLf _
    & "Para " & cliente.Column(1) & vbCrLf & var_tratamento & " " & var_contato & vbCrLf _
    & "Valor Total: " & valor_total, vbYesNo + vbQuestion, "Confirma") = vbYes Then
        Me.gerada_por = DLookup("USU?RIO", "tbl_sessao")
        Me.gerada_em = Now
        Me.gerada = True
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

    Mensagem = [lbl_saudacao] & " " & var_tratamento & " " & var_contato & "." & vbCrLf & vbCrLf _
    & "Atendendo a consulta solicitada, apresentamos nossa proposta conforme segue abaixo:" & vbCrLf & vbCrLf _
    & "Proposta N: " & [id_proposta_gerado] & vbCrLf & vbCrLf _
    & "Referente: " & [referencia] & vbCrLf & vbCrLf _
    & "Prazo de Entrega: " & [prazo_entrega] & vbCrLf & vbCrLf _
    & "Condições de Pagamento: " & [cond_pagamento] & vbCrLf & vbCrLf _
    & "Validade da Proposta: " & [validade_proposta] & vbCrLf & vbCrLf _
    & "Tipo de Transporte: " & [tipo_transporte] & vbCrLf & vbCrLf _
    & "Em anexo arquivo Completo da Proposta" & vbCrLf & vbCrLf _
    & "Ficamos no aguardo e agradecemos antecipadamente sua cotação, atenciosamente." & vbCrLf & vbCrLf _
    & gerada_por & vbCrLf _
    & "estrelaco@estrelaco.com.br" & vbCrLf & vbCrLf _
    & "------------------------------------------------------------------ " & vbCrLf _
    & "Esta é uma mensagem automática do Sistema ERP 2018."

    Me.texto_mensagem = Mensagem

    DoCmd.OpenForm "1-EMAIL_PROGRESSO"
    Call Email_CDO2(Me.Remetente, Me.Destinatarios, Me.Assunto, Me.Mensagem)
        
    End If
    End If



    Eis o código de envio com CDO

    Código:

    Public Sub Email_CDO2(Remetente As String, Destinatario As String, _
    Assunto As String, Corpo As String, Optional cc As String, _
    Optional BCC As String)
        
    On Error Resume Next
        
        
        Dim iMsg As Object
        Dim iConf As Object
        Dim strBody As String
        Dim Senha As String
        Dim assinatura
        Dim topom
        Dim anexo
        
        
        Senha = "sua senha"
        
        anexo = Forms!Mensagens!RotaArquivo

        '    Dim Flds As Variant
     
        Set iMsg = CreateObject("CDO.Message")
        Set iConf = CreateObject("CDO.Configuration")
     
            iConf.Load -1    ' CDO Source Defaults
            Set Flds = iConf.Fields
            With Flds
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SMTP.seudominio.com.br"
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
                .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "seu@email.com.br"
                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "sua senha"
                .Update
            End With
     
     
        
      strBody = Corpo
      
        With iMsg
            Set .Configuration = iConf
            .To = Destinatario
            .cc = cc
            .BCC = BCC
            .From = Remetente
            .AddAttachment ("c:\eu.pdf")
            .Subject = Assunto
            .TextBody = strBody
            '.HTMLBody = strBody
            .Send
        End With
     
        Set iMsg = Nothing
        Set iConf = Nothing

    End Sub


    Fico no aguardo.
    Obrigado


    .................................................................................
    " 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
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2471
    Registrado : 21/04/2011

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Marcelo David em 3/11/2018, 02:23

    Boa noite!
    Não consegui identificar erro no código ou algo que cause esse comportamento.
    Poderia postar as partes envolvidas para verificarmos?


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)
    avatar
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 3/11/2018, 16:41

    Tenta dessa forma!

    Código:

    iMsg.Close
    Set iMsg = Nothing

    iConf.Close
    Set iConf = Nothing



    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 3/11/2018, 21:57

    Obrigado pessoal. Infelizmente só posso testar na segunda. Pois o sistema está na empresa. Mas assim que testar. Respondo.
    Obrigado


    .................................................................................
    " 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
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 5/11/2018, 12:09

    Bom dia.
    Modifiquei Avelino, mas nada feito, continua o mesmo problema.


    .................................................................................
    " 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
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 6/11/2018, 11:18

    Cláudio Machado Bom Dia! ao enviar a mensagem voce adiciona campos da tabela tbl_sessao? Notei que voce chama esses campos da tabela mais não estas a fechar nenhuma tabela nesse procedimento.


    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 6/11/2018, 11:46

    Bom dia Avelino.
    Sim. Mas esta tabela fica aberta todo tempo. Pois nela são gravados vários dados da sessão do usuário. Ela não precisa ser fechada e sim a tabela de proposta que a qual fica aberta após envio de email.

    Não gostaria que ficasse assim. Por ser um sistema em rede não é aconselhável.
    Obrigado pela ajuda.
    avatar
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 6/11/2018, 12:33

    Tenta fechar a tabela proposta, se vai melhor o desempenho.


    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 6/11/2018, 13:18

    Avelino mas é isso que quero, pois mesmo que eu feche o form a tabela continua aberta.
    Obrigado


    .................................................................................
    " 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
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 6/11/2018, 14:40

    Essa tabela esta vinculada ao formulario ou não?



    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 6/11/2018, 20:20

    Desculpe a demora, deu problema na minha net.
    Sim, está vinculada ao form.
    Obrigado


    .................................................................................
    " 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
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 6/11/2018, 21:33

    Veja esse exemplo
    Anexos
    ENVIAR_EMAIL.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (817 Kb) Baixado 2 vez(es)


    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 7/11/2018, 13:41

    Bom dia Avelino.
    Eu já conhecia esse exemplo.
    Mas infelizmente nunca consegui rodar ele.


    O que eu queria mesmo era no próprio form da "Proposta" enviar o email, e ainda preciso anexar o PDF da proposta que ainda tenho que desenvolver isso e estou batendo cabeça.


    Na verdade o form envia o email perfeitamente, o único problema está no travamento do sistema e a tabela que fica aberta.

    Obrigado amigo.


    .................................................................................
    " 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
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 7/11/2018, 13:46

    Cláudio Machado Boa tarde, a solução é voce postar bd e por outra já compactou o bd?


    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 7/11/2018, 18:33

    Avelino

    Consegui descobrir o que era!  cheers

    Na tela de "EMAIL_PROGRESSO",  existia uma parte do código assim:


           If bytVar Mod 5 = 0 Then Me!percen.Caption = bytVar & " %"
    Me.Repaint
       Next
       Espera (1.6)

    Removi a parte em vermelho e acabou o problema. Incrível como pode isso...

    Agora vou passar para o anexo.
    Preciso anexar o pdf gerado desta proposta ao email.
    Mas tenho que abrir outro tópico.
    Se puder ajudar, agradeço amigo.

    Obrigado
    Anexos
    proposta_maximo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (160 Kb) Baixado 3 vez(es)


    .................................................................................
    " 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
    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 286
    Registrado : 10/03/2012

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Avelino João em 7/11/2018, 20:58

    Veja no exemplo que postei tem uma função que anexa pdf.


    .................................................................................
    Proaccess - Angola
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

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

    Re: Tabela não fecha e sistema fica lento ao enviar email com CDO.

    Mensagem  Cláudio Machado em 7/11/2018, 22:08

    Obrigado, mas não usei este exemplo.
    Ele é bom, mas está fora do padrão que preciso.

    Eu já consigo gerar o pdf com o comando abaixo:

    Código:


    DoCmd.OutputTo acOutputReport, "PROPOSTA_TECNICA", "PDFFormat(*.pdf)", CurrentProject.Path & "\RELATORIO PDF\PROPOSTA TÉCNICA Nº " & (Me!id_proposta_gerado) & ".pdf", False, "", 0, acExportQualityScreen



    Só que gostaria de anexar o arquivo que está na pasta: \RELATORIO PDF\
    Referente ao número da proposta no email que estou enviando.

    Assim, do próprio form de Proposta o usuário gera a proposta e envia o email com a mesma já anexada.

    Obrigado


    .................................................................................
    " 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.

      Data/hora atual: 16/11/2018, 10:14