dimecres, 17 de febrer de 2010

Conmutador Access

Avui m'he estat barallant amb una consulta Access que incloia un logaritme.
La consulta considerava varies opcions i per tant, en lloc del If (Sinm) he optat pel Conmutador (Switch).

Un dels valors era 0, però el primer paràmetre del conmutador ja ho considerava. Tot anava bé fins que, en la cinquena línia de conmutació afegia el càlcul del logaritme:

Conmutador(
[Def]=0;0,5;
[Def]=1;1;
[Def]=2;2;
[Def]=3;3;
[Def]>3;3,3555*Ln([Def])-1,9071
)

Un company m'ha obert els ulls: el conmutador requereix -a diferència del If- que tots els paràmetres es poguin executar. I resulta que el Ln de 0 no es un valor possible...

Ho hem resolt amb un if dins el Ln:

Conmutador(
[Def]=0;0,5;
[Def]=1;1;
[Def]=2;2;
[Def]=3;3;
[Def]>3;([DEF]/(3,3555*Ln(SiInm([Def]=0;1;[Def]))-1,9071)))
)


Gràcies Joan i Angela.

Cap comentari:

Publica un comentari a l'entrada