MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Access para outlook

    avatar
    guidopignatti
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 10/09/2018

    [Resolvido]Access para outlook Empty [Resolvido]Access para outlook

    Mensagem  guidopignatti em 6/3/2020, 20:31

    Tenho o seguinte código e está dando certo até o momento, mas gostaria de incrementar.

    Na linha ".Subject = Me.Categorias & ": - " & Me.Assunto & vbNullString" eu queria incluir o campo NOME CLIENTE do frm_Compromissos. Não estou conseguindo.


    O código integral segue abaixo:


    Private Sub Form_AfterUpdate()

    On Error GoTo Err_Form_AfterUpdate

    Dim objOl As Outlook.Application
    Dim objItem As Outlook.AppointmentItem
    Dim blnOlRunning As Boolean

    On Error Resume Next

    blnOlRunning = True

    Set objOl = GetObject(, "Outlook.Application")

    If Err <> 0 Then
    Set objOl = CreateObject("Outlook.Application")
    blnOlRunning = False
    Err.Clear
    End If

    On Error GoTo 0

    Set objItem = objOl.CreateItem(olAppointmentItem)

    With objItem
    .Start = CDate(Me.DataVencimento) + CDate(Me.Horario) '.Duration = Me.txtDuration * Me.ogDuration
    .Subject = Me.Categorias & ": - " & Me.Assunto & vbNullString
    .Body = Me.DataVencimento & vbNullString

    If Len(Me.DataVencimento & vbNullString) > 0 Then 'Len(Me.txtReminder & vbNullString) > 0 Then (texto original)
    .ReminderSet = True '.ReminderMinutesBeforeStart = Me.txtReminder * Me.ogPeriod (texto original)
    .ReminderMinutesBeforeStart = Me.DataVencimento
    Else
    .ReminderMinutesBeforeStart = 0
    .ReminderSet = False
    End If

    .Save
    End With

    If blnOlRunning = True Then
    ' display the new item
    objItem.Display
    Else
    objOl.Quit
    End If



    Exit_Form_AfterUpdate:
    Set objItem = Nothing
    Set objOl = Nothing
    Exit Sub


    Err_Form_AfterUpdate:
    Select Case Err

    Case 0

    Case Else
    MsgBox Err.Description
    Resume Exit_Form_AfterUpdate
    End Select
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 232
    Registrado : 19/08/2010

    [Resolvido]Access para outlook Empty Re: [Resolvido]Access para outlook

    Mensagem  marcelo3092 em 8/3/2020, 21:11

    Ola amigo no caso poderia ser mais detalhado vc usa esse codigo num formulario, pq vc quer pegar um campo no caso de qual outro form.
    Poderia usar um dlookup para buscar os dados do campo. ficaria tipo assim

    Dim PNome as string

    Pnome = DLookup("[Nomecliente]", " frm_Compromissos")

    .Subject = Me.Categorias & ": - " & Me.Assunto & " " & Pnome & vbNullString

    .Subject = Me.Categorias & ": - " & Me.Assunto & " " & DLookup("[Nomecliente]", " frm_Compromissos") & vbNullString

    Mais ou menos isso
    avatar
    guidopignatti
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 10/09/2018

    [Resolvido]Access para outlook Empty Re: [Resolvido]Access para outlook

    Mensagem  guidopignatti em 9/3/2020, 10:46

    Segui suas orientação mas não deu certo. Acredito que seja porque o campo NomeCliente no meu formulário não está tudo junto, está separado como NOME CLIENTE.

    Não sei como resolver isso. Se puder me ajudar, ficarei agradecido.

    Obrigado.



    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2141
    Registrado : 22/11/2016

    [Resolvido]Access para outlook Empty Re: [Resolvido]Access para outlook

    Mensagem  DamascenoJr. em 10/3/2020, 00:30

    Use colchetes "[Nome Cliente]"

    Em tempo, vale ressaltar que você não deve usar palavras reservadas do access, espaços e acentuações ao nomear objetos para evitar "manobras" na programação.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 232
    Registrado : 19/08/2010

    [Resolvido]Access para outlook Empty Re: [Resolvido]Access para outlook

    Mensagem  marcelo3092 em 10/3/2020, 01:39

    Bem Lembrado Damasceno
    Isso mesmo procure usar os campos da tabela tudo junto sem ascentos. ou se precisar coloquei um _

    nome_cliente ai na legenda do campo coloquei Nome do Cliente

    de preferencia nomeie as tabelas como tblclientes consulta qryclientes relatorios rltclientes modulos modclientes e assim por diante.

    Alexandre fim do forum tambem pego muito no meu pe com as boas normas da programação.

    avatar
    guidopignatti
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 10/09/2018

    [Resolvido]Access para outlook Empty Re: [Resolvido]Access para outlook

    Mensagem  guidopignatti em 10/3/2020, 10:16

    Desde já agradeço a todos, mas eu já consegui resolver da seguinte forma (não sei se foi a mais correta):

    Dim pnome As String

    pnome = Forms!frm_Compromissos![NOME CLIENTE].Column(2)


    With objItem

    .Start = CDate(Me.DataVencimento) + CDate(Me.Horario)
    '.Duration = Me.txtDuration * Me.ogDuration
    .Subject = Me.Categorias.Column(1) & ": - " & pnome & " - " & Me.Assunto & vbNullString
    .Body = Me.Descricao & vbNullString

      Data/hora atual: 15/8/2020, 05:21