Access - Socorro! función IIf

   
Vista:

Socorro! función IIf

Publicado por Leo (3 intervenciones) el 01/04/2011 06:41:48
Hola a todos, estoy tratando de correr la siguiente función IIf en Access 2003:
IIf([Proc]![Value]=0,0,(IIf([Proc]![Value]>0 & [Proc]![Value]=<15,1,(IIf([Proc]![Value]>15 & [Proc]![Value]=<30,2,Null)))))
El problema es que solo me funciona la primer condición, es decir, [Proc]![Value]=0. El resto de los registros se actualizan a 1, incluyendo los que deberían ser 2 o Null.
Alguien me podría tirar una soga?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Socorro! función IIf

Publicado por angelessebas (208 intervenciones) el 01/04/2011 10:36:25
Hola,
Sustituye el simbolo & por and. Lo que hace & es concatenar.
Saludos, Angeles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Socorro! función IIf

Publicado por JOSE (741 intervenciones) el 01/04/2011 15:14:11
[Proc]![Value]



SELECT CASE [Proc]![Value]

CASE IS =0
OPERACION

CASE IS <1
OPERACION

CASE IS S >1
OPERACION

END SELECT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Socorro! función IIf

Publicado por jose (741 intervenciones) el 02/04/2011 09:42:25
en este caso SELECT es diferente de SELECT CASE .. EN SELECT no se usa como instrccion de busqueda sql

lo que hace es una Consulta normal , pero que depende de los datos de una variable
Y se CREA la consulta segun el valor DE UN A VARIABLE en este caso ZOCEN

Espero te sirva, si no es para esta aplicacion para otra:



Set rs = CreateObject("ADODB.RecordSet")
Set con = Application.CurrentProject.Connection
C11 = "": c21 = "": c31 = "": c41 = "": c51 = "": c61 = ""
C11 = "SELECT Count([T130-COMIDAS-DIA].[ID-T130]) AS LINEAS, Sum([T130-COMIDAS-DIA].[CANTIDADCOMIDAS-T130]) AS COMIDAS "
c21 = " FROM [T130-COMIDAS-DIA] "
'c31 = " WHERE ((([T130-COMIDAS-DIA].[IDCLIENTE-T130]) Between" & Str$([C1]) & " And " & Str$([CF]) & " ) AND (([T130-COMIDAS-DIA].[DIA-T130])= " & Format$([FE], "mm/dd/yyyy") & " ))"
'c41 = " HAVING ((([T130-COMIDAS-DIA].[DCMC-T130])= " & Str$([M3]) & " ) AND (([T130-COMIDAS-DIA].[ZONA-T130]) Between " & Str$([ZONA1]) & " And " & Str$([ZONAF]) & " ) ) ORDER BY Count([T130-COMIDAS-DIA].[ID-T130])"
c31 = " HAVING ( ( [T130-COMIDAS-DIA].[DIA-T130] = #" & Format([FE], "mm/dd/yyyy") & "# )"
'C41 = " AND ( [T130-COMIDAS-DIA].[IDCLIENTE-T130] Between " & Str$([C1]) & " And " & Str$([CF]) & " )"
c41 = " AND ( [T130-COMIDAS-DIA].[IDCLIENTE-T130] Between " & Str$(1) & " And " & Str$(9999999) & " )"

c51 = " AND ( ([T130-COMIDAS-DIA].[DCMC-T130])= " & Str$([M3]) & " )"


Select Case ZOCEN
Case Is = 1
c61 = " AND ( ([T130-COMIDAS-DIA].[ZONA-T130]) Between " & Str$([ZONA1]) & " And " & Str$([ZONAF]) & " ) )"
Case Is = 2
c61 = " AND ( ([T130-COMIDAS-DIA].[CENTROS-T130]) Between " & Str$([CENT1]) & " And " & Str$([CENTF]) & " ) )"
Case Is = 3
c61 = " )"
End Select

consulta = C11 & c21 & c31 & c41 & c51 & c61

rs.Open consulta, con, adOpenDynamic, adLockOptimistic
rs.MoveFirst
'MsgBox rs.Fields(0).Value
'MsgBox rs.Fields(1).Value

T8 = rs.Fields(0).Value
rs.Close
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Socorro! función IIf

Publicado por Leo (3 intervenciones) el 01/04/2011 16:03:41
Gracias Ángeles, funcionó perfecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Socorro! función IIf

Publicado por Leo (3 intervenciones) el 01/04/2011 16:05:47
Gracias José, no conocía esa función, aunque en mi caso es una consulta de actualización. Calculo que funcionará reemplazando SELECT por UPDATE. Lo voy a Intentar. Saludos, Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar