Función Dsum con Tres Criterios

Hace poco me ayudaron a resolver un problema con la función Dsum (Agradezco a Jacinto) pero ahora tengo un problema cuando intento agregar un nuevo criterio para la suma: mi código hasta el momento es este:

Me.TotalRentaEquipo = Nz(DSum("[Importe]", "[tabInventario]", "[Franja] = 0" & "AND" & "[AccionATomar] = OPERA " & " AND " & "[IdSitio] = '" & Me.IdSitio & "'"), 0)

Cabe mencionar que el nuevo campo que estoy agregando es "AccionATomar" que es un Combobox y el criterio que le doy es Opera, pero me tira un error 'La expresion que ha especificado como parametro de la consulta produjo el error Opera'. Creo y me imagino que es porque es un cuadro combinado.

1 Respuesta

Respuesta
2

Carlos: Así sin mucho análisis la Función sería:

Me.TotalRentaEquipo = Nz(DSum("[Importe]", "[tabInventario]", "[Franja] = 0" & "AND" & "[AccionATomar] = ‘” & Me.OPERA & “’”  & " AND " & "[IdSitio] = '" & Me.IdSitio & "'"), 0)

No obstante te recomiendo que hasta que no tengas soltura en redactar el criterio global, porque a todos se nos olvidan comas.. (bueno al menos a mí), que hagas "trozos" el problema y así creo te irá mejor.

Sobre lo anterior:

Dim CriterioUno As String, CriterioDos As String, CriterioTres As String, Criterios As String

CriterioUno = "Franja = 0"

CriterioDos ="[AccionATomar] = '" & Me.Opera.Column(0) & "'"

'Aquí si AcciónATomar está en una columna que no sea la Primera le has de poner>> 1 para la segunda, 2 para la tercera...

CriterioTres = "IdSitio  = '" & Me.IdSitio & "'"

Criterios = CriterioUno & " AND " & CriterioDos & " AND " CriterioTres

Me.TotalRentaEquipo = Nz(DSum("[Importe]", "[tabInventario]", Criterios), 0)

Y siquieres ser Puritano

CriterioUno = ""

CriterioDos = ""

CriterioTres = ""

Criterios = ""

Si tienes dudas me comentas. Mis saludos >> Jacinto

Jacinto: No me ha funcionado, al momento de abrir mi formulario suma todo sin respetar el criterio de que solo sume lo que este con 'OPERA' . y tuve que modificar de esta manera mi código

Dim CriterioUno As String, CriterioDos As String, CriterioTres As String, Criterios As String
CriterioUno = "Franja = 0"
CriterioDos = "[AccionATomar] = '" & Me.AccionATomar.Column(0) & "'"
'Aquí si AcciónATomar está en una columna que no sea la Primera le has de poner>> 1 para la segunda, 2 para la tercera...
CriterioTres = "IdSitio  = '" & Me.IdSitio & "'"
Criterios = CriterioUno & " AND " & CriterioDos & " AND " & CriterioTres
Me.TotalRentaEquipo = Nz(DSum("[Importe]", "[tabInventario]", Criterios), 0)

ya que en la parte de CriterioDos = "[AccionATomar] = '" & Me.AccionATomar.Column(0) & "'"  me marcaba error ya que estaba asi: ... CriterioDos ="[AccionATomar] = '" & Me.Opera.Column(0) & "'"  y OPERA es un elemento del cuadro combinado, entonces lo cambie tal como lo ves en mi codigo y funciono, bueno no del todo, ya que sigue el error que anteriormente comenté.

Carlos: Hay cuestiones que no veo de donde salen como el>> amp; y quizá conceptualmente tampoco acabo de ver lo que pretendes sumar.

Ya que tienes mi eMail, si puedes aislar los Objetos que intervienen en ese proceso, me envias la BD y será mejor localizar el fallo.

Si otas por ésta solución me citas por ejemplo: cuando el Campo... tenga el valor de... quiero conseguir... etc. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas