Existe una diferencia fundamental entre DO CASE y IF ENDIF y esta radica en el caso de seleccion multiple evalua en el orden que programaste y al entrar en un caso ya no se evalua las siguientes esto es:
DO CASE
CASE condicion1
...
CASE condicion2
...
CASE condicion3
...
OTHERWISE
...
ENDCASE
en el caso que condicion1sea falso evalua condicion2 y si este es verdadero ya no evalua la condicion3 ni OTHERWISE por cierto OTHERWISE se evalua como verdadera si ninguna de las condiciones anteriores fueron ciertas.
En Cambio para sentencias como las que sigue se evaluan todas sin excepción
IF condicion1
...
ENDIF
IF condicion2
...
ENDIF
IF condicion3
...
ENDIF
Funcion IIF()
lo unico que esta hace es devolvur UN VALOR DE ENTRE 2 POSIBLES si la condicion es verdadera devuelve el valor
que esta en IIF( , "VALOR A DEVOLVER EN CASO VERDADERO", ), de lo contrario devuelve el valor IIF(,, "EN CASO FALSO" )
valor=IIF( condicion, "SI condicion ES VERDADERA", "LA condicion ES FALSA" )
Obs: entiendase que (se evalua como cierta) quiere decir que se ejecuta las sentencias que estan entre ..., para recibir
mejor ayuda deberias postear un segmento de tu codigo y explicar que deberia hacer.
Espero haber ayudado!!