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


    Ao clicar em um botão enviar um email em 10 em 10 minutos

    avatar
    kaiuviny
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 14/09/2015

    Ao clicar em um botão enviar um email em 10 em 10 minutos Empty Ao clicar em um botão enviar um email em 10 em 10 minutos

    Mensagem  kaiuviny 17/11/2015, 11:50

    Pessoal estou com uma dúvida simples que não estou conseguindo executar. Sad

    Utilizo o Access 2010, Windows 7

    eu tenho um botão chamado btnUrgente,

    ao clicar neste botão ele envia um email, para um grupo especifico de usuários cadastrados no meu Sistema

    Já consegui fazer com que envie o email paras os usuários, porém preciso que esse email seja enviado em 10 em 10 min até um horário escolhido pelo usuário.

    Estou tentando alguns exemplos com Do While, mas está dificil, sou novo com VB,

    Esse é meu código de enviar o email, se alguem souber de algo que possa me ajudar agradeço muito.

    Código:
    Private Sub btnUrgente_Click()
    Dim rs As Recordset
    Dim sql As String, Para As String, strsql As String
    Dim Origem As String, Caminho(4) As String, pula As String



    ' Seleciona os campos da tabela de cadastro de usuario de um grupo especifico
    Let strsql = "SELECT * FROM Tab_Login WHERE [grupo] = 1 OR 3 OR 4 OR 5 OR 6"      ' grupos a enviar email : 1- GV, 3- PPCP, 4- RV, 5- AM, 6- PROD 
    Set rs = Banco.OpenRecordset(sql)

    ' armazena no campo para os emails dos usuários.
    rs.MoveFirst
    Do While rs.EOF = False ' percorre toda a tabela e armzena os usuarios dos grupos acima
        If IsNull(Me.Para) Then
            Me.Para = rs(3)
        Else
            Me.Para = Me.Para & ";" & rs(3)
        End If
        rs.MoveNext
    Loop

    'a cada 10 minutos executar a baixo.
    'faça enquanto hora atual  < hora escolhido  , hora atual + 10 , loop

        Origem = GetPathPart
        pula = Chr(10) & Chr(13) 'pula linha no email

        Call InitializeOutlook
        Set objNewMail = gOLApp.CreateItem(olMailItem)
        With objNewMail
        '.Attachments.Add origem & Me!Anexo & ".pdf", olByValue, 1
            .To = Me!Para ' variavel que armazena os endereços do grupo GV,PPCP,RV,AM,Prod
            .HTMLBody = "URGENTE, é necessário informar o Número de Pedido. Quantidade Recebida(pç):  " & Me!qtd_pc & ";" & " Quantidade Recebida(kg): " & Me!qtd_kg & ";" & " Data Recebimento: " & Me!data_recb & ";" & " Código Produto: " & Me!Cod_Generico & "," & " Descrição Produto: " & Me!descricao
            .Subject = "URGENTE: Recepção de Veículos, Necessário código de número pedido:"
            .Send
        End With
    'Loop do while finaliza aqui
        MsgBox "Enviando Email de Conferência...", vbInformation = vbOKOnly, "Conferencia Email"



    End Sub
    avatar
    kaiuviny
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 14/09/2015

    Ao clicar em um botão enviar um email em 10 em 10 minutos Empty Re: Ao clicar em um botão enviar um email em 10 em 10 minutos

    Mensagem  kaiuviny 17/11/2015, 13:23

    Pensei em algo assim

    Se eu chamasse minha função de mandar email de "Public sub Urgente()"

    E colocar uma opção de o usuário digitar a hora em que quer que pare.

    No meu formulário eu tenho um label chamado "data_hora" que retorno o valor "=Agora()" que atualiza a cada segundo contanto a data e as horas,

    E assim ao clicar no botão Urgente, tivesse um código que chamasse a função Urgente a cada 10 min,

    Tentei algo como o código abaixo, mas com meu pouco conhecimento não obtive sucesso. Sad

    Código:

    Dim alerta As String
    Dim hora_atual
    hora_atual = data_atual
        alerta = MsgBox("Alerta de Email de 10 em 10 minutos! Por favor informe até qual horário será enviado o alerta", vbInfoText + vbOKOnly, "Alerta Email")
        Do While Me.data_atual < alerta
            If data_atual = (hora_atual + "00:10:00") Then
                Urgente
                hora_atual = data_atual
            End If
           
        Loop

      Data/hora atual: 8/5/2024, 00:48