none
Converter em SQL Access RRS feed

  • 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 Function

    Att, Estanislau Frade msn: lauedele@hotmail.com email: estanislaufrade@yahoo.com.br estanislau.frade@vale.com

    quarta-feira, 8 de fevereiro de 2012 20:51

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
    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


    quarta-feira, 8 de fevereiro de 2012 22:49
  • Deleted
    quarta-feira, 8 de fevereiro de 2012 23:31
  • 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

    quarta-feira, 8 de fevereiro de 2012 23:49
  • Deleted
    quinta-feira, 9 de fevereiro de 2012 11:06
  • 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
    sexta-feira, 10 de fevereiro de 2012 01:24