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

    Alterar 2 campos pela última data de registro para um mesmo CNPJ

    Compartilhe
    avatar
    RegisBorda
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 07/02/2014

    Alterar 2 campos pela última data de registro para um mesmo CNPJ

    Mensagem  RegisBorda em 8/1/2019, 16:13

    Prezados,

    Boa tarde, um Feliz Ano Novo para todos.

    Tenho 3 registros para um mesmo CNPJ ([CNPJCliente]), com Datas diferentes ([DtEntrega]). Preciso alterar o campo [Renovado] para SIM e o campo [Situação] para RENOVAÇÃO da Data mais atual ou última data.

    Ex:

    00014241/0001-90 - 23/10/2015 - Não - Nova Emissão
    00014241/0001-90 - 01/09/2016 - Não - Nova Emissão
    00014241/0001-90 - 15/08/2014 - Não - Nova Emissão

    Vou fazer um novo Certificado para o CNPJ exemplo (00014241/0001-90), preciso alterar o certificado anterior deste CNPJ para [Renovado] = sim e [Situação] = Renovação porém a [DtEntrega] tem que ser a mais atual ou última data que no caso do exemplo seria 01/09/2016

    Como poderia fazer isso ?

    Muitíssimo grato,

    Abs,

    Regis Borda:.

    caiosouza
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 373
    Registrado : 05/12/2016

    Re: Alterar 2 campos pela última data de registro para um mesmo CNPJ

    Mensagem  caiosouza em 8/1/2019, 16:43

    Boa tarde,

    Teste:

    Código:
    Sub NovoCertificado()
        Dim Ncnpj As String, UltimoReg As Date
        'Pega o CNPJ e Ultimo registro
        Ncnpj = Me.CNPJCliente 'O nome do campo CNPJ no formulário
        UltimoReg = DLast("[DtEntrega]", "tabCertificado", "[CNPJCliente]='" & Ncnpj & "'") 'Se o campo na tabela for do tipo numero, alterar o final do codigo para =" & ncnpj & ""
       
        'Insere dados na tabela com base nos dados coletados acima
        CurrentDb.Execute "UPDATE tabCertificado SET [Renovado]=True AND [Situacao]='Renovação' WHERE [CNPJCliente]='" & Ncnpj & "' AND [DtEntrega]=#" & UltimoReg & "#" ''Se o campo na tabela for do tipo numero, alterar o final do codigo para =" & ncnpj & ""
       
        'Aqui pode ser seu procedimento para criar o novo registro...
    End Sub


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    RegisBorda
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 07/02/2014

    Alterar 2 campos pela última data de registro para um mesmo CNPJ

    Mensagem  RegisBorda em 8/1/2019, 20:43

    Prezado Caio,

    Inseri o Código e o mesmo não está funcionando segue o código final para análise.

    Já fiz vários testes e não consegui acertar. Deve ser alguma bobeira que não consigo ver.

    Private Sub CNPJCliente_AfterUpdate()

    If DVCGC_Fornecedor(CNPJCliente) <> Right(CNPJCliente, 2) Then
    MsgBox "O CNPJ Digitado não está correto. Digite novamente.", 16, "Sistema de Gestão de Certificados"
    CNPJCliente.SetFocus
    End If

    Dim db As Database
    Dim Ncnpj As String
    Dim UltimoReg As Date
    Dim intResp As String

    MsgBox "O Ticket do CNPJ inserido será Renovado !!!", vbCritical, "Atenção !!!"
    intResp = MsgBox("Confirma a Renovação do Ticket para este CNPJ ?", vbYesNo, "Atenção !!!")
    Select Case intResp
    Case vbYes
    Ncnpj = Me.CNPJCliente
    UltimoReg = DLast("[DtEntrega]", "TbVendasCertif", "[CNPJCliente]='" & Ncnpj & "'")

    If IsNull(UltimoReg) Then
    MsgBox "Data em branco, renovação do Ticket para este CNPJ foi Cancelada !!!", vbInformation, "Atenção !!!"
    Else
    CurrentDb.Execute "UPDATE TbVendasCertif SET [Renovado]= -1 AND [Situacao]='Renovação' WHERE [CNPJCliente]='" & Ncnpj & "' AND [DtEntrega]=#" & UltimoReg & "#"
    End If

    Case vbNo
    MsgBox "Renovação do Ticket para este CNPJ foi Cancelada !!!", vbInformation, "Atenção !!!"
    DoCmd.CancelEvent
    End Select

    End Sub
    avatar
    RegisBorda
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 07/02/2014

    Alterar 2 campos pela última data de registro para um mesmo CNPJ

    Mensagem  RegisBorda em 9/1/2019, 10:40

    Prezado Caio,

    Consegui acertar o código.

    O resultado final ficou assim :

    Dim db As Database
    Dim UltimaData As Date
    Dim Ncnpj As String
    Dim intResp As String
    Dim Ticket As Double

    MsgBox "O Ticket do CNPJ inserido será Renovado !!!", vbCritical, "Atenção !!!"
    intResp = MsgBox("Confirma a Renovação do Ticket para este CNPJ ?", vbYesNo, "Atenção !!!")
    Select Case intResp
    Case vbYes
    Ncnpj = Me.CNPJCliente
    UltimaData = DLast("[DtEntrega]", "TbVendasCertif", "[CNPJCliente]='" & Ncnpj & "'")
    Ticket = DLookup("[NumTicket]", "TbVendasCertif", "[CNPJCliente]='" & Ncnpj & "'" & " And [DtEntrega]=#" & Format(UltimaData, "mm/dd/yyyy") & "#")

    If IsNull(UltimaData) Then
    MsgBox "Data em branco, renovação do Ticket para este CNPJ foi Cancelada !!!", vbInformation, "Atenção !!!"
    Else
    CurrentDb.Execute "UPDATE TbVendasCertif SET [Renovado]= -1 WHERE [CNPJCliente]='" & Ncnpj & "' AND [DtEntrega]=#" & Format(UltimaData, "mm/dd/yyyy") & "#" & " AND [NumTicket]=" & Ticket
    CurrentDb.Execute "UPDATE TbVendasCertif SET [Situacao]='Renovação' WHERE [CNPJCliente]='" & Ncnpj & "' AND [DtEntrega]=#" & Format(UltimaData, "mm/dd/yyyy") & "#" & " AND [NumTicket]=" & Ticket
    End If
    Case vbNo
    MsgBox "Renovação do Ticket para este CNPJ foi Cancelada !!!", vbInformation, "Atenção !!!"
    DoCmd.CancelEvent
    End Select

    Grato pela sua Ajuda,

    Grande Abs

    Regis Borda:.
    caiosouza
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 373
    Registrado : 05/12/2016

    Re: Alterar 2 campos pela última data de registro para um mesmo CNPJ

    Mensagem  caiosouza em 9/1/2019, 11:05

    Bom dia!

    Se esta ok favor marcar como [Resolvido].

    Obrigado e bons estudos...


    .................................................................................
    A persistência leva ao sucesso!

      Data/hora atual: 26/3/2019, 02:54