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 um email usando um botão que leia o campo de email

    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 8/11/2018, 08:20

    Bom dia. Tenho um banco de cadastro de associados com agenda e emails e gostaria que ao abrir o cliente de email do associado, o assunto e o corpo da mensagem estejam com um texto pré-definido. Isso é pedir demais?  Very Happy
    E pra piorar, é possível fazer isso com agendamento automático? Tipo, a cada 30 dias, o associado, se estiver atrasado, recebe um email de 'lembrança'?
    Alguém tem um exemplo pra passar?

    Obrigado!

    Smile


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    Estuardo
    Estuardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 20
    Registrado : 24/09/2014

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  Estuardo 9/11/2018, 16:38

    Boa Tarde,
    Utilizar o gestor de mail não é boa idea. por varias razoes. A primeira e mais importante é que não pode saber e mesmo sabendo garantir que ese gestor não muda. Ainda nem em todos os gestores é possível automatizar.
    Dito isto, automatizar sem o gestor é bem mais fácil, mais seguro e muito menos trabalho. Exemplo com CDO
    Código:

    Dim oMail  As Object

    Set oMail = CreateObject("CDO.Message")
    With oMail
        .Subject = eMessage.Subject
        .Sender = eMessage.Sender
        .To = eMessage.Recipient 'you can add multiple recipients here, even your own to keep a copy for yourself
        .TextBody = eMessage.MessageBody

       

        With .configuration.Fields
            .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2  'SMTP constant
            .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.yahoo.com" 'like smtp.domain.ext
            .item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpassword"
            .item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
            oMail.Send
        End With
    End With

    Saludos
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  vieirasoft 9/11/2018, 17:16

    Pedindo desde já desculpas pela minha intromissão. talvez o colega possa fazer isso recorrendo a uma API e, dessa forma, poderá usar qualquer gestor de correio,ou pelo menos a grande maioria dos que são usados. Até à data é o que tenho usado sem problemas.

    1- Abra um novo módulo e dê-lhe o nome de mdlShellExecute

    2- Copie e cole. P.f. mantenha os créditos do autor

    Option Compare Database
    Option Explicit
    '
    ' This code was originally written by Dev Ashish.
    ' It is not to be altered or distributed,
    ' except as part of an application.
    ' You are free to use it in any application,
    ' provided the copyright notice is left unchanged.
    '
    ' Code Courtesy of Dev Ashish
    '
    Private Declare Function APIShellExecute Lib "shell32.dll" _
       Alias "ShellExecuteA" _
       (ByVal hwnd As Long, _
       ByVal lpOperation As String, _
       ByVal lpFile As String, _
       ByVal lpParameters As String, _
       ByVal lpDirectory As String, _
       ByVal nShowCmd As Long) _
       As Long

    '***App Window Constants***
    Public Const WIN_NORMAL = 1         'Open Normal
    Public Const WIN_MAX = 2            'Open Maximized
    Public Const WIN_MIN = 3            'Open Minimized

    '***Error Codes***
    Private Const ERROR_SUCCESS = 32&
    Private Const ERROR_NO_ASSOC = 31&
    Private Const ERROR_OUT_OF_MEM = 0&
    Private Const ERROR_FILE_NOT_FOUND = 2&
    Private Const ERROR_PATH_NOT_FOUND = 3&
    Private Const ERROR_BAD_FORMAT = 11&

    '***************Usage Examples***********************
    'Open a folder:     ?fHandleFile("C:\TEMP\",WIN_NORMAL)
    'Call Email app:    ?fHandleFile("mailto:dash10@hotmail.com",WIN_NORMAL)
    'Open URL:          ?fHandleFile("http://hoMe.txtatt.net/~dashish",WIN_NORMAL)
    'Handle Unknown extensions (call Open With Dialog):
    '                   ?fHandleFile("C:\TEMP\README",Win_Normal)
    'Start Access instance:
    '                   ?fHandleFile("C:\TEMP\CodeNStuff.mdb", Win_NORMAL)
    '****************************************************





    Function fHandleFile(stFile As String, lShowHow As Long)
    Dim lRet As Long, varTaskID As Variant
    Dim stRet As String
       'First try ShellExecute
       lRet = APIShellExecute(hWndAccessApp, vbNullString, _
               stFile, vbNullString, vbNullString, lShowHow)
               
       If lRet > ERROR_SUCCESS Then
           stRet = vbNullString
           lRet = -1
       Else
           Select Case lRet
               Case ERROR_NO_ASSOC:
                   'Try the OpenWith dialog
                   varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
                           & stFile, WIN_NORMAL)
                   lRet = (varTaskID <> 0)
               Case ERROR_OUT_OF_MEM:
                   stRet = "Error: Out of Memory/Resources. Couldn't execute!"
               Case ERROR_FILE_NOT_FOUND:
                   stRet = "Error: File not found.  Couldn't Execute!"
               Case ERROR_PATH_NOT_FOUND:
                   stRet = "Error: Path not found. Couldn't Execute!"
               Case ERROR_BAD_FORMAT:
                   stRet = "Error:  Bad File Format. Couldn't Execute!"
               Case Else:
           End Select
       End If
       fHandleFile = lRet & _
                   IIf(stRet = "", vbNullString, ", " & stRet)
    End Function
    Function fShellExeTest()
    'Test UNC ShellExecute
       fShellExeTest = APIShellExecute(hWndAccessApp, vbNullString, _
                       "\\server23\home-cd\dashish\ute_ref.txt", _
                       vbNullString, vbNullString, 1)
    End Function
    Function fShellExe(strFileName As String, lngShow As Long) As Long
       fShellExe = APIShellExecute(hWndAccessApp, vbNullString, strFileName, _
           vbNullString, vbNullString, lngShow)
    End Function

    Sub testShellEXE()
    Dim lngX As Long
       lngX = fShellExe("http://www.microsoft.com", 1)
    End Sub
    -------------------------------------

    Abra um novo módulo e chame-o de : APIShellExecute

    Agora copie para o módulo este código

    Option Compare Database
    Option Explicit
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Public Const SW_SHOW = 3

    Agora, crie um botão e coloque-o no lado direito do seu campo Email. Chame a esse campo "txtEmail", por exemplo.

    No evento ao fazer clique do botão:

    ShellExecute Me.hwnd, "open", "mailto:" & txtEmail, vbNullString, vbNullString, SW_SHOW

    Desta forma o seu gestor de email abre já com o endereço de email preenchido. Pode fazer muito mais, como preencher o corpo etc. Abraço
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 9/11/2018, 22:28

    Obrigado pelos códigos. Vou dar uma estudada e mando um retorno!

    Laughing


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Res: Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 10/11/2018, 10:32

    Bom dia vieirasoft. Esse código apenas abre a caixa de criar email com o email do contato? Não funcionou. O erro segue no anexo com o código 'ao clicar' do botão.

    erro ao clicar

    Obrigado.


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  vieirasoft 10/11/2018, 11:04

    O exemplo que lhe estou a enviar é o mesmo código que passei e não dá erro no botão. Este exemplo abre o seu gestor de correio com o email que está na ficha preenchido. Não era isto?

    https://www.dropbox.com/s/xeghwslrddv5i10/exemplomail.mdb?dl=0
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Res: Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 10/11/2018, 14:23

    Obrigado vieirasoft, deu certo mas só em partes. No Access tem o tipo de campo 'hiperlink' que já abre o cliente de email exibindo o email do contato.
    Seria completo se esse botão copiasse os 3 campos do formulário (criei simulando um cliente de email com os mesmos campos: Para, Assunto e Corpo da Mensagem) no Access. Eu precisava que cada campo no formulário fosse para o seu respectivo campo no programa de email.
    Os textos do Para, Assunto e Corpo da Mensagem viriam dos dados do contato.
    Obrigado!

    Wink


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  vieirasoft 10/11/2018, 15:02

    Meu caro, estude o exemplo e acrescente as caixas que pretende. teste assim no exemplo que lhe enviei

    ShellExecute hwnd, vbNullString, "mailto:" & Email & "?Subject=Pedido de informação" & " & Body=venho pedir a seguinte informação: ", vbNullString, CurrentProject.Path, 1

    Por exemplo: No corpo do email pode substituir o "venho pedir a seguinte informação:" por uma caixa de texto no seu form, não é ?!

    & Body=& mimnha caixa de texto
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  vieirasoft 10/11/2018, 15:07

    Assim:

    ShellExecute Me.hwnd, "open", "mailto:" & txtEmail & "?Subject=Proposta Orçamento" & "&Body=:" & Me.Proposta, vbNullString, vbNullString, SW_SHOW
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Res: Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 10/11/2018, 17:04

    Obrigado! Vou tentar a mando um retorno.



    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Res: Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 3/12/2018, 15:36

    Boa tarde vieirasoft. Tentei aqui e não deu certo.
    Segue no anexo um compacto do banco com o que pretendo. Foi feito no Access 2007.
    Obrigado!

    Baixar modelo

    Wink


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  vieirasoft 3/12/2018, 15:52

    Boa tarde, mas que erro é que está a dar? Você só diz que não dá, mas não mostra qual o erro.
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 685
    Registrado : 14/12/2010

    Enviar um email usando um botão que leia o campo de email Empty Res: Enviar um email usando um botão que leia o campo de email

    Mensagem  julianovv 3/12/2018, 16:14

    Mas não tem erro. O que pretendo é que apareçam os campos 'assunto' e corpo da mensagem no cliente de email (Microsoft Outlook, Outlook Express, etc).
    Estou tentando sincronizar um formulário que seria uma pré-visualização do email, para que, ao abrir o cliente de email do usuário apareçam completo nos campos do jeito que está apresentado na pré-visualização do formulário e que seja aberto a edição do texto e enviar.

    Ou, num caso mais complexo, que seja enviado de dentro do Access, sem precisar abrir o programa de email. Isso evitaria a instalação desses programas.

    Rolling Eyes


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - NVidia GForce GT 370 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  vieirasoft 3/12/2018, 16:23

    Meu caro, quem lhe disse que era para colocar o campo email como hyperlink? Eu não fui, com certeza!!!. Para você implementar o que quer, tem que seguir à risca o que lhe mandam e depois implementar no seu sistema, certo!!!
    Então, vamos recomeçar do zero:
    Estou a enviar-lhe, de novo, uma BD que contém:

    1- Um formulário que contém um campo Email
    2- No final do campo tem um botão para abrir o gestor de correio, abre qualquer um.
    3- Na secção módulos viajam dois (2) módulos que deve incorporar no seu sistema.

    Muito fácil de implementar

    https://www.dropbox.com/s/zhhs52153hmvgnz/bdemail.mdb?dl=0

    Bom estudo

    Conteúdo patrocinado


    Enviar um email usando um botão que leia o campo de email Empty Re: Enviar um email usando um botão que leia o campo de email

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 22:01