Usuário com melhor resposta
Converter em SQL Access

Pergunta
-
Amigos tenho esse modulo em access, e queria converter o mesmo em instrução SQL para Usar no prórprio access em uma consulta.
Comecei a fazer em SQL, não conseguir terminar:
UPDATE Pendências SET Pendências.Status = IIf(DataPrevista>Now(),'Em andamento','Atrasado');
Modulo:
Function ChkStatus(Previsto As Date, Optional Concluso) As String
If IsNull(Concluso) Then
If Previsto >= Date Then
ChkStatus = "Em andamento"
Else
ChkStatus = "Atrasada"
End If
Else
If Previsto >= Concluso Then
ChkStatus = "Concluído"
Else
ChkStatus = "Concluído com atraso"
End If
End If
End FunctionAtt, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com
Respostas
-
Prezados,
consegui assim:
UPDATE Pendências SET Pendências.Status = IIf(DATAENTREGA Is Null And DATAPREVISTA>NOW(),'Em Andamento',IIf(DATAENTREGA Is Null And DATAPREVISTA<NOW(),'Atrasado',IIf(DATAENTREGA Is Not Null And DATAPREVISTA>=DATAENTREGA,'Concluída',IIf(DATAENTREGA Is Not Null And DATAPREVISTA<DATAENTREGA,'Concluída com Atraso'))));
Att, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com
- Marcado como Resposta Estanislau Frade sexta-feira, 10 de fevereiro de 2012 01:24
Todas as Respostas
-
Amigos,
tentei assim e tá dando um erro no ISNULL, erro de Sintaxe (Operador Faltando)
UPDATE Pendências SET Pendências.Status =
CASE(WHEN ISNULL(concluso) THEN (CASE(WHEN previsto >= now() THEN 'Em andamento' ELSE 'Atrasado'))
ELSE (CASE(WHEN previsto >= concluso) THEN 'Concluído' ELSE 'Concluído com atraso')));
Att, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com
- Editado Estanislau Frade quarta-feira, 8 de fevereiro de 2012 23:03
-
-
Não consegui, a questão, tenho uma tabela no access e preciso fazer um update nela pelo SQL toda vez q eu acessar a mesma pelo VB2008. Montei essa consulta e ela quer rodar, pois preciso do seguinte.
Se dataprevista > agora então "em andamento" caso contrário "Atrasada"
Se dataprevista > dataentrega "concluida com atraso" caso contrário "Concluída"
Não sei como fazer isso em SQL para aplicar no access.
Até a linha abaixo deu certo, mas ficou faltando os dois ultimos status.
UPDATE Pendências SET Pendências.Status = IIf(DataPrevista>Now(),'Em andamento','Atrasado');
Att, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com
-
-
Prezados,
consegui assim:
UPDATE Pendências SET Pendências.Status = IIf(DATAENTREGA Is Null And DATAPREVISTA>NOW(),'Em Andamento',IIf(DATAENTREGA Is Null And DATAPREVISTA<NOW(),'Atrasado',IIf(DATAENTREGA Is Not Null And DATAPREVISTA>=DATAENTREGA,'Concluída',IIf(DATAENTREGA Is Not Null And DATAPREVISTA<DATAENTREGA,'Concluída com Atraso'))));
Att, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com
- Marcado como Resposta Estanislau Frade sexta-feira, 10 de fevereiro de 2012 01:24