Hola buenas consulta fallo al incluir un nuevo campo

Hola de nuevo,

La consulta que me habías arreglado para que me sumara el número de familiares solo una vez por registro en el informe, ahora me falla, y lo que hice fue en la consulta le añadí el campo FECHA ENTREGA y el nombre lo cambié por miMES:month([FECHA ENTREGA]) y en lo criterios que me cogiera el valor del txtbox y hay es donde introduzco el numero de mes, pues si ejecuto la consulta simplemente perfecto ahora que cuando la filtro por el formulario me sale bien pero el cuadro que debe de sumar los familiares pone #ERROR el origen del control es =fncSumaBeneficiarios() y el código:

Option Compare Database
Private Function fncSumaBeneficiarios() As Integer
Dim rst As DAO.Recordset
Dim miSQL As String
miSQL = "SELECT DISTINCT DNI, [Nº MIEMBROS UNIDAD FAMILIAR] FROM [REGISTRO VALES]"
Set rst = CurrentDb.OpenRecordset(miSQL)
fncSumaBeneficiarios = 0
If rst.RecordCount = 0 Then
Exit Function
Else
Do Until rst.EOF
fncSumaBeneficiarios = fncSumaBeneficiarios + rst("Nº MIEMBROS UNIDAD FAMILIAR")
rst.MoveNext
Loop
End If
End Function

Un saludo

1 respuesta

Respuesta
1

Pues no consigo ver el error, pues independientemente de que añadas campos a la consulta, la función trabaja sobre una "consulta virtual" sobre REGISTRO VALES, con lo que te tendría que dar siempre un valor, ya sea 0 u otro distinto.

Aunque no creo que el problema sea este, prueba a modificar la función para que te la "filtre" también por el nº de mes:

miSQL = "SELECT DISTINCT DNI, [Nº MIEMBROS UNIDAD FAMILIAR] FROM [REGISTRO VALES] WHERE miMes=" & Aquí el nombre del form y textbox: Forms!Nombre.txt...


Si no logras solucionarlo, pásame una copia de de bd, pero borra todas las tablas, consultas, formularios e informes que no intervienen en el problema, para que no me vuelva loco buscando

miSQL = "SELECT DISTINCT DNI, [Nº MIEMBROS UNIDAD FAMILIAR] FROM [REGISTRO VALES] WHERE miMes=" & [REGISTRO VALES] y textbox: Forms!Nombre.txtmes

seria así?o lo de y texbox:Forms!nombre(sería volver a poner el nombre del formulario aquí)

el formulario que filtra los datos se llama REGISTRO VALES y el campo txtmes.

Gracias Un saludo

TE estoy limpiando la bd

Aquí va el enlace

<a>http://filebig.net/files/W9cX7Sgbwj</a>

La contraseña es kike pass: 123 como puedo hacer para que me diferencia entre mayúsculas y minisculas en el password?

Un saludo

A ver, la estructura de la sql sería esta:

miSQL = "SELECT DISTINCT DNI, [Nº MIEMBROS UNIDAD FAMILIAR] FROM [REGISTRO VALES] WHERE miMes=" & Forms![REGISTRO VALES].txtmes

Entendiendo que el formulario se llama "registro vales" y la consulta tambien.

Si así se llaman los dos y lo cambie en el código y me da el mismo error en el informe pone #ERROR en ese campo.

Un saludo

Pues no sé, tendría que verlo para poderte dar una solución...

Perdón por la tardanza, pero volví a tener problemas para abrir tu archivo con access 2007, y hasta hace una horita no pude contar con un pc con access 2010.

Veamos tu problema: por más que lo intenté, no logré que funcionara con la consulta parametrizada como la tienes. El problema es que al tenerla así, la función no funciona, y no doy con la manera de que trabaje con la consulta "filtrada" y que me funcione el select distinct para que calcule bien la suma.

En su lugar, te planteo otra opción alternativa: quitar el parámetro a la consulta (el Forms!... del criterio) y abrir el informe filtrado por el valor seleccionado en el formulario.

http://www.filebig.net/files/C9xeSnkPXq

Muchas gracias perfecto, mira que le eche tiempo yo intentando y probando haber que podía ser me podía ver pasado la vida je je.

Me vale la solución perfectamente, pues casi mejor filtrarlo así por el valor en el formulario. Muchas gracias por todo las demás consultas las realizare igual creando funciones iguales pero adaptadas a los campos y filtrando los resultados por el valor en el formulario, pero esta vez tengo que poner dos criterios uno es el mes que esta echo es adaptarlo y otro sera un campo de texto que pueden ser dos valores (kit higiene familiar o kit higiene bebe) esta consulta podría hacerla como esta por el formulario o sino crear dos distintas una para cada caso y filtrar la fecha como ahora y el segundo criterio en el parámetro de la consulta.

Muchas gracias por todo Un saludo

Si las funciones las vas a basar en una consulta, y esta está parametrizada (con un criterio), te va a volver a dar problemas, como esta.

Es mejor que lo hagas siguiendo este sistema, pues puedes abrir el informe filtrado por dos criterios, por ejemplo:

DoCmd.OpenReport "Nombre", acViewPreview, , "[NomTabla/Consulta].Campo1=" & Me.controlFormulario1 & " AND [NomTabla/Consulta].Campo2=" & Me.controlFormulario2.

Un saludo, y si no necesitas nada más relacionado con este tema, no te olvides de finalizarla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas