Bom dia!
Preciso de uma ajuda para executar o modulo da melhor forma.
No meu frm Aluno1, tenho o botao " REGISTRAR" que registra a entrada e saida dos alunos em na tabela "Entra_saida_aluno". Até ai tudo bem.
Na tabela tem o horario contrato, pois se o aluno chegou antes ou ficou até depois do horario contratado é gerado hora extra.
O que preciso é que, caso seja gerado hora extra, será enviado um email para os pais informando.
Consegui fazer o modulo SendMailHEPais, mas nao consigo fazer funcionar no botao "REGISTRAR" do frm Aluno1.
Vou disponibilizar o DB para melhor compreensão, mas parte do código do botao é esse;
If IsNull(Forms![aluno1]![Entra_saida_aluno Subformulário]!entrada) Then
If Weekday(Date) = 2 And Not IsNull(Forms![aluno1].hora_entrada) Then
Forms![aluno1]![Entra_saida_aluno Subformulário]!entrada = Time()
Forms![aluno1]![Entra_saida_aluno Subformulário]!Data = Date
Forms![aluno1]![Entra_saida_aluno Subformulário]!horacontr_entrada = Forms![aluno1].hora_entrada
Forms![aluno1]![Entra_saida_aluno Subformulário]!horacontr_saida = Forms![aluno1].hora_saida
DoCmd.RunCommand acCmdRefresh
Forms![aluno1]![Cons_Saida_bebe30min subformulário].Requery
Gostaria de chamar o modulo após esse codigo, mas nao consigo. Tentei jogar o codigo do modulo diretamente, mas o programa fica lento e nao consigo registrar mais de um aluno.
Código do Modulo
Public Function SendMailHEPais()
Dim rs As DAO.Recordset
Dim txtnome As String
Dim txtHEntrada As String
Dim txtContEntrada As String
Dim txtContSaida As String
Dim txtEmail_Pai As String
Dim txtEmail_Mae As String
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Con_HE_SendEmail_Pais where Con_HE_SendEmail_Pais.[registro]=" & [Forms]![aluno1]![Registro] & "")
'Do While Not rs.EOF
txtnome = rs!nome
txtHEntrada = rs!HEntrada
txtContEntrada = rs!horacontr_entrada
txtContSaida = rs!horacontr_saida
txtEmail_Pai = rs!Email_Pai
txtEmail_Mae = rs!email_Mae
'rs.MoveNext
'Loop
If (txtHEntrada) <> "" Then
Dim Obj As Object
Set Obj = CreateObject("CDO.Message")
With Obj.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Update
End With
With Obj
.To = txtEmail_Pai
.FROM = "email@gmail.com"
.Subject = "Aviso : " & txtnome & " - Hora Adicional Gerada"
.HTMLBody = "Prezados Pais!
Informamos que foi gerado " & txtHEntrada & " de hora adicional devido a entrada antecipada.
" & " Entrada contratada: " & txtContEntrada & "
Saída contratada: " & txtContSaida & "
Caso haja dúvida, favor entrar em contato pelo WhatsApp 11 .
Esse email não recebe menssagem.
A Direção"
End With
On Error Resume Next
Obj.Send
If Err.Number <> 0 Then
MsgBox "CDO Error " & vbNewLine & Err.Description, vbCritical, "Avíso"
Else
'MsgBox "Mensaje enviado con éxito", vbInformation, "Avíso"
End If
Set Obj = Nothing
Set rs = Nothing
End If
End Function
Preciso de uma ajuda para executar o modulo da melhor forma.
No meu frm Aluno1, tenho o botao " REGISTRAR" que registra a entrada e saida dos alunos em na tabela "Entra_saida_aluno". Até ai tudo bem.
Na tabela tem o horario contrato, pois se o aluno chegou antes ou ficou até depois do horario contratado é gerado hora extra.
O que preciso é que, caso seja gerado hora extra, será enviado um email para os pais informando.
Consegui fazer o modulo SendMailHEPais, mas nao consigo fazer funcionar no botao "REGISTRAR" do frm Aluno1.
Vou disponibilizar o DB para melhor compreensão, mas parte do código do botao é esse;
If IsNull(Forms![aluno1]![Entra_saida_aluno Subformulário]!entrada) Then
If Weekday(Date) = 2 And Not IsNull(Forms![aluno1].hora_entrada) Then
Forms![aluno1]![Entra_saida_aluno Subformulário]!entrada = Time()
Forms![aluno1]![Entra_saida_aluno Subformulário]!Data = Date
Forms![aluno1]![Entra_saida_aluno Subformulário]!horacontr_entrada = Forms![aluno1].hora_entrada
Forms![aluno1]![Entra_saida_aluno Subformulário]!horacontr_saida = Forms![aluno1].hora_saida
DoCmd.RunCommand acCmdRefresh
Forms![aluno1]![Cons_Saida_bebe30min subformulário].Requery
Gostaria de chamar o modulo após esse codigo, mas nao consigo. Tentei jogar o codigo do modulo diretamente, mas o programa fica lento e nao consigo registrar mais de um aluno.
Código do Modulo
Public Function SendMailHEPais()
Dim rs As DAO.Recordset
Dim txtnome As String
Dim txtHEntrada As String
Dim txtContEntrada As String
Dim txtContSaida As String
Dim txtEmail_Pai As String
Dim txtEmail_Mae As String
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Con_HE_SendEmail_Pais where Con_HE_SendEmail_Pais.[registro]=" & [Forms]![aluno1]![Registro] & "")
'Do While Not rs.EOF
txtnome = rs!nome
txtHEntrada = rs!HEntrada
txtContEntrada = rs!horacontr_entrada
txtContSaida = rs!horacontr_saida
txtEmail_Pai = rs!Email_Pai
txtEmail_Mae = rs!email_Mae
'rs.MoveNext
'Loop
If (txtHEntrada) <> "" Then
Dim Obj As Object
Set Obj = CreateObject("CDO.Message")
With Obj.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "email@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
.Update
End With
With Obj
.To = txtEmail_Pai
.FROM = "email@gmail.com"
.Subject = "Aviso : " & txtnome & " - Hora Adicional Gerada"
.HTMLBody = "Prezados Pais!
Informamos que foi gerado " & txtHEntrada & " de hora adicional devido a entrada antecipada.
" & " Entrada contratada: " & txtContEntrada & "
Saída contratada: " & txtContSaida & "
Caso haja dúvida, favor entrar em contato pelo WhatsApp 11 .
Esse email não recebe menssagem.
A Direção"
End With
On Error Resume Next
Obj.Send
If Err.Number <> 0 Then
MsgBox "CDO Error " & vbNewLine & Err.Description, vbCritical, "Avíso"
Else
'MsgBox "Mensaje enviado con éxito", vbInformation, "Avíso"
End If
Set Obj = Nothing
Set rs = Nothing
End If
End Function