usei o comando
UPDATE tbl_Epis SET datatroca = (
SELECT DataTroca
FROM (SELECT tbl_Epis.CodEpei, tbl_Cad_Epi.CODIGOPRD, tbl_Epis.Integrante, tbl_Epis.Matricula, tbl_Epis.Setor, tbl_Epis.Cod_Funcao, tbl_Epis.Cargo, tbl_Epis.Descricao, tbl_Epis.DataAquisicao, tbl_Epis.DataEntrega, tbl_Epis.DataReprogramacao, tbl_Epis.Qtde, tbl_Epis.Status, tbl_Cad_Epi.Validade AS Val, IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),"Reprog",IIf([TBL_EPIS].[STATUS] In ('DEVOLUÇÃO'),"Dev","Perda"))) AS Validade, IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),[DataReprogramacao],IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[tbl_Epis].[dataEntrega]+IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[DataReprogramacao],Null))) AS DataTroca1, tbl_Epis.Obs, Format$([DataTroca1],'ddd') AS DIA, IIf(Format$([DataTroca1],'ddd')="sáb",[DataTroca1]+2,IIf(Format$([DataTroca1],'ddd')="dom",[DataTroca1]+1,[DataTroca1])) AS DataTroca, tbl_Epis.Motivo, tbl_Epis.Entregue FROM (tbl_Epis LEFT JOIN tbl_Cad_Epi ON tbl_Epis.Descricao = tbl_Cad_Epi.Descricao) LEFT JOIN Cons_Epi_x_Funcao ON (tbl_Epis.Descricao = Cons_Epi_x_Funcao.EPI_DESCRICAO) AND (tbl_Epis.Cod_Funcao = Cons_Epi_x_Funcao.COD_FUNCAO) WHERE (((tbl_Epis.Status) Not In ("EXCLUIDO")))) AS EPI
WHERE epi.codepei = tbl_epis.codepei);
Mas esta dando a seguinte mensagem:
A OPERAÇÃO DEVE USAR UMA CONSULTA ATUALIZAVEL,
Como resolver este problema?
Gostaria de dar upadate na tabela tbl_Epi no campo DataTroca, pois a data esta null
select abaixo:
codepei DataTroca
33258 2003/11/20
33258 03/11/2020
30728 29/07/2020
32785 25/08/2020
32610 28/11/2019
32609 28/11/2019
32905 26/08/2020
32611 28/11/2019
32782 25/08/2020
Tabela: para o updade
CodEpei DataTroca
33258 null
33258
30728
32785
32610
32609
32905
32611
32782
Gostaria de dar upadate na tabela tbl_Epi acima, pois a data esta null
select com o retorno da data:
SELECT codepei, DataTroca
FROM (SELECT tbl_Epis.CodEpei, tbl_Cad_Epi.CODIGOPRD, tbl_Epis.Integrante, tbl_Epis.Matricula, tbl_Epis.Setor, tbl_Epis.Cod_Funcao, tbl_Epis.Cargo, tbl_Epis.Descricao, tbl_Epis.DataAquisicao, tbl_Epis.DataEntrega, tbl_Epis.DataReprogramacao, tbl_Epis.Qtde, tbl_Epis.Status, tbl_Cad_Epi.Validade AS Val, IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),"Reprog",IIf([TBL_EPIS].[STATUS] In ('DEVOLUÇÃO'),"Dev","Perda"))) AS Validade, IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),[DataReprogramacao],IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[tbl_Epis].[dataEntrega]+IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[DataReprogramacao],Null))) AS DataTroca1, tbl_Epis.Obs, Format$([DataTroca1],'ddd') AS DIA, IIf(Format$([DataTroca1],'ddd')="sáb",[DataTroca1]+2,IIf(Format$([DataTroca1],'ddd')="dom",[DataTroca1]+1,[DataTroca1])) AS DataTroca, tbl_Epis.Motivo, tbl_Epis.Entregue FROM (tbl_Epis LEFT JOIN tbl_Cad_Epi ON tbl_Epis.Descricao = tbl_Cad_Epi.Descricao) LEFT JOIN Cons_Epi_x_Funcao ON (tbl_Epis.Cod_Funcao = Cons_Epi_x_Funcao.COD_FUNCAO) AND (tbl_Epis.Descricao = Cons_Epi_x_Funcao.EPI_DESCRICAO) WHERE (((tbl_Epis.Status) Not In ("EXCLUIDO")))) AS EPI
WHERE DataTroca Is not null;
UPDATE tbl_Epis SET datatroca = (
SELECT DataTroca
FROM (SELECT tbl_Epis.CodEpei, tbl_Cad_Epi.CODIGOPRD, tbl_Epis.Integrante, tbl_Epis.Matricula, tbl_Epis.Setor, tbl_Epis.Cod_Funcao, tbl_Epis.Cargo, tbl_Epis.Descricao, tbl_Epis.DataAquisicao, tbl_Epis.DataEntrega, tbl_Epis.DataReprogramacao, tbl_Epis.Qtde, tbl_Epis.Status, tbl_Cad_Epi.Validade AS Val, IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),"Reprog",IIf([TBL_EPIS].[STATUS] In ('DEVOLUÇÃO'),"Dev","Perda"))) AS Validade, IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),[DataReprogramacao],IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[tbl_Epis].[dataEntrega]+IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[DataReprogramacao],Null))) AS DataTroca1, tbl_Epis.Obs, Format$([DataTroca1],'ddd') AS DIA, IIf(Format$([DataTroca1],'ddd')="sáb",[DataTroca1]+2,IIf(Format$([DataTroca1],'ddd')="dom",[DataTroca1]+1,[DataTroca1])) AS DataTroca, tbl_Epis.Motivo, tbl_Epis.Entregue FROM (tbl_Epis LEFT JOIN tbl_Cad_Epi ON tbl_Epis.Descricao = tbl_Cad_Epi.Descricao) LEFT JOIN Cons_Epi_x_Funcao ON (tbl_Epis.Descricao = Cons_Epi_x_Funcao.EPI_DESCRICAO) AND (tbl_Epis.Cod_Funcao = Cons_Epi_x_Funcao.COD_FUNCAO) WHERE (((tbl_Epis.Status) Not In ("EXCLUIDO")))) AS EPI
WHERE epi.codepei = tbl_epis.codepei);
Mas esta dando a seguinte mensagem:
A OPERAÇÃO DEVE USAR UMA CONSULTA ATUALIZAVEL,
Como resolver este problema?
Gostaria de dar upadate na tabela tbl_Epi no campo DataTroca, pois a data esta null
select abaixo:
codepei DataTroca
33258 2003/11/20
33258 03/11/2020
30728 29/07/2020
32785 25/08/2020
32610 28/11/2019
32609 28/11/2019
32905 26/08/2020
32611 28/11/2019
32782 25/08/2020
Tabela: para o updade
CodEpei DataTroca
33258 null
33258
30728
32785
32610
32609
32905
32611
32782
Gostaria de dar upadate na tabela tbl_Epi acima, pois a data esta null
select com o retorno da data:
SELECT codepei, DataTroca
FROM (SELECT tbl_Epis.CodEpei, tbl_Cad_Epi.CODIGOPRD, tbl_Epis.Integrante, tbl_Epis.Matricula, tbl_Epis.Setor, tbl_Epis.Cod_Funcao, tbl_Epis.Cargo, tbl_Epis.Descricao, tbl_Epis.DataAquisicao, tbl_Epis.DataEntrega, tbl_Epis.DataReprogramacao, tbl_Epis.Qtde, tbl_Epis.Status, tbl_Cad_Epi.Validade AS Val, IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),"Reprog",IIf([TBL_EPIS].[STATUS] In ('DEVOLUÇÃO'),"Dev","Perda"))) AS Validade, IIf([TBL_EPIS].[STATUS] In ('REPROGRAMADO'),[DataReprogramacao],IIf([TBL_EPIS].[STATUS] Not In ('DEVOLUÇÃO') And [TBL_EPIS].[STATUS] Not In ('PERDA') And [TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[tbl_Epis].[dataEntrega]+IIf([Cons_Epi_x_Funcao].[PERIODICIDADE] Is Not Null,[Cons_Epi_x_Funcao].[periodicidade],[tbl_cad_epi].[validade]),IIf([TBL_EPIS].[STATUS] Not In ('REPROGRAMADO'),[DataReprogramacao],Null))) AS DataTroca1, tbl_Epis.Obs, Format$([DataTroca1],'ddd') AS DIA, IIf(Format$([DataTroca1],'ddd')="sáb",[DataTroca1]+2,IIf(Format$([DataTroca1],'ddd')="dom",[DataTroca1]+1,[DataTroca1])) AS DataTroca, tbl_Epis.Motivo, tbl_Epis.Entregue FROM (tbl_Epis LEFT JOIN tbl_Cad_Epi ON tbl_Epis.Descricao = tbl_Cad_Epi.Descricao) LEFT JOIN Cons_Epi_x_Funcao ON (tbl_Epis.Cod_Funcao = Cons_Epi_x_Funcao.COD_FUNCAO) AND (tbl_Epis.Descricao = Cons_Epi_x_Funcao.EPI_DESCRICAO) WHERE (((tbl_Epis.Status) Not In ("EXCLUIDO")))) AS EPI
WHERE DataTroca Is not null;
Última edição por Carlos Rugno em 14/10/2020, 21:12, editado 2 vez(es) (Motivo da edição : update na tabela tbl_Epi pois a data esta null)