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]Código update não atualiza

    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Código update não atualiza Empty [Resolvido]Código update não atualiza

    Mensagem  Finformática em 28/4/2020, 03:53

    Grandes Mestres,

    Por favor, onde está o erro desse código que não está atualizando? As tabelas estão abaixo. O que quero com código é se placa da primeira tabela for igual a placas da segunda atualizar campo Observacao = "Testando aprendizado".
    Alguém pode me ajudar??

    Dim rst As DAO.Recordset
       Dim CodPlaca As String
       Dim vDataHInicio As Date
       
       Set rst = CurrentDb.OpenRecordset("SELECT TabelaRegistroCabecalho.Placa, " & _
       "TabelaRegistroCabecalho.DataHoraInicio FROM TabelaRegistroCabecalho ORDER BY TabelaRegistroCabecalho.Placa")
       
       Do While Not rst.EOF
           CodPlaca = rst("Placa")
           MsgBox CodPlaca
           vDataHInicio = rst("DataHoraInicio")
           MsgBox vDataHInicio
           CurrentDb.Execute "UPDATE TabelaRegistroDetalhes SET Observacao='" & "Testando aprendizado" & _
           "' WHERE Placas=" & CodPlaca
           
           rst.MoveNext
       Loop
       rst.Close
       Set rst = Nothing


    TabelaRegistroCabecalho
    Placa DataHoraInicio DataHoraTermino Observacao
    ABC1234 15/04/20 08:00:00 20/04/20 12:00:00 OK
    CBA4321 08/04/20 10:00:00 09/04/20 21:00:00 OK
    MMM1111 10/04/20 09:00:00 14/04/20 12:55:00 OK
    QUK5149 05/04/20 10:05:00 07/04/20 13:00:00 OK
    QYC5284 11/04/20 14:23:00 12/04/20 19:00:00 OK

    TabelaRegistroDetalhes
    Cods Placas DataOcorrido Observacao
    10 ABC1234 15/04/20 08:00:00 NÃO
    11 ABC1234 16/04/20 09:10:00 NÃO
    15 CBA4321 10/04/20 21:01:00 NÃO
    16 CBA4321 11/04/20 23:03:00 NÃO
    7 MMM1111 09/04/20 09:00:00 NÃO
    8 MMM1111 10/04/20 08:00:00 NÃO
    9 MMM1111 10/04/20 09:30:00 NÃO
    17 QYC5284 05/04/20 10:00:00 NÃO
    12 QYC5284 13/04/20 20:00:00 NÃO
    13 QYC5284 11/04/20 23:30:00 NÃO
    14 QYC5284 14/04/20 10:00:00 NÃO


    Desde já muito grato, grande abraço.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7677
    Registrado : 05/11/2009

    [Resolvido]Código update não atualiza Empty Re: [Resolvido]Código update não atualiza

    Mensagem  Alexandre Neves em 28/4/2020, 13:37

    Boa tarde
    currentdb.execute "UPDATE TabelaRegistroDetalhes SET Observacao='Testando aprendizado' WHERE Placas NOT IN (SELECT Placa FROM TabelaRegistroCabecalho"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Código update não atualiza Empty Re: [Resolvido]Código update não atualiza

    Mensagem  Finformática em 28/4/2020, 14:28

    Caro Alexandre,

    Muito grato por me ajudar.
    Mestre, o código ainda não funcionou. Não faz nada. Esse NOT IN que você usa compara se as placas são iguais?

    Abraços
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7677
    Registrado : 05/11/2009

    [Resolvido]Código update não atualiza Empty Re: [Resolvido]Código update não atualiza

    Mensagem  Alexandre Neves em 28/4/2020, 17:25

    Realmente interpretei o contrário, agora deverá actualizar nas placas comuns das duas tabelas
    currentdb.execute "UPDATE TabelaRegistroDetalhes SET Observacao='Testando aprendizado' WHERE Placas IN (SELECT Placa FROM TabelaRegistroCabecalho)"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Código update não atualiza Empty Re: [Resolvido]Código update não atualiza

    Mensagem  Finformática em 28/4/2020, 18:34

    Grande Alexandre,

    Funcionou perfeitamente. Agora acrescentando mais dois critérios, fiz e não funcionou, peço-lhe mais orientações. Fiz assim:

    CurrentDb.Execute "UPDATE TabelaRegistroDetalhes SET Observacao='Testando aprendizado' WHERE Placas IN (SELECT Placa,DataHoraInicio,DataHoraTermino FROM TabelaRegistroCabecalho) AND DataHoraInicio<=DataOcorrido AND DataHoraTermino>=DataOcorrido"

    Além da placa, a DataOcorrido tem que está entre DataHoraInicio e DataHoraTermino. Faça mais esse por favor.

    Muito grato, grande abraço.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7677
    Registrado : 05/11/2009

    [Resolvido]Código update não atualiza Empty Re: [Resolvido]Código update não atualiza

    Mensagem  Alexandre Neves em 28/4/2020, 20:23

    Será assim:
    CurrentDb.Execute "UPDATE TabelaRegistroDetalhes SET Observacao='Testando aprendizado' WHERE Placas IN (SELECT Placas FROM TabelaRegistroDetalhes LEFT JOIN TabelaRegistroCabecalho ON TabelaRegistroDetalhes.Placas=TabelaRegistroCabecalho.Placa WHERE DataOcorrido Between DataHoraInicio and DataHoraTermino) and DataOcorrido IN (SELECT DataOcorrido FROM TabelaRegistroDetalhes LEFT JOIN TabelaRegistroCabecalho ON TabelaRegistroDetalhes.Placas=TabelaRegistroCabecalho.Placa WHERE DataOcorrido Between DataHoraInicio and DataHoraTermino)"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 591
    Registrado : 23/03/2010

    [Resolvido]Código update não atualiza Empty Re: [Resolvido]Código update não atualiza

    Mensagem  Finformática em 28/4/2020, 21:13

    Valeu Alexandre,

    Funcionou perfeitamente, vou estudar cada passo do código.
    Muito obrigado.

    Grande abraço

    Resolvido.

      Data/hora atual: 15/8/2020, 06:04