Consulta dos condiciones filtrada desde informe

Realice la consulta como me dijiste y siguiendo los mismos pasos copie la función para la nueva suma de los familiares llamándola igual pero con un 2 al final pero no me funciona en el informe y al filtrar la consulta en el informe me dice esto:

Error "3075" en tiempo de ejecución falta de operador, lo hice como me lo planteaste lo que no se es si lo hice bien je je.

http://filebig.net/files/bicFMk4pKZ

1 respuesta

Respuesta
1

Pues no lo hiciste bien, no...

DoCmd.OpenReport "REGISTRO DE KITS", acViewPreview, , "[REGISTRO KITS].TIPO='" & Me.cboTipo & "' AND [REGISTRO DE KITS].miMes=" & Me.cboMes

Tienes que tener en cuenta siempre, al programar en vba, que si el valor que estás manejando es de tipo texto, tiene que ir siempre entre comillas simples, por ejemplo:

[REGISTRO KITS].TIPO='KIT HIGIENE'

O si lo pasas como variable (como en el docmd que te corrijo arriba) tienes que ponerle la comilla simple después del igual y antes de las comillas, y de nuevo después de las siguientes comillas antes del AND.

De igual modo, si trabajas con datos de fecha, tienes que usar la # del mismo modo:

[Fecha de Entrega]=#19/10/2013#

Además tienes que fijarte más en los nombres de los campos al hacer las consultas. Tu tienes en tu campo calculado:

Mes: Mes([FECHA ENTREGA])

Y tu campo no se llama así, sino FECHA DE ENTREGA, de ahí que al abrir el informe te pregunte ese parametro.

Si uso la parte de arriba como me explicaste de la variable ya valdría para los dos tipos de kits verdad? Y por cierto he visto que añadiste la comilla simple también delante del AND pero no la vi por el final del código supongo que no se necesitara.

en cuanto a lo de la fecha entiendo a te refieres a cuando vaya a trabajar con fechas o para este caso en concreto ya que no lo hice así debido a que no lo vi en el informes que me creaste la otra vez.

un saludo

La parrafada era a modo de "teoría", para que lo sepas por si te hace falta.

Fíjate donde están las comillas simples: después del signo = y antes del AND, porque el valor de texto es el del primer cuadro combinado. El segundo cuadro combinado es un número, por tanto no le hace falta comillas simples.

Por lo tanto con esa corrección ya estaría resuelto el error verdad?(es que no tengo acceso al pc hasta dentro de un rato) y por cierto como es que no me funciona la función para la suma de beneficiarios.

un saludo

Ya he probado los cambios que me dijiste pero me sigue dando el mismo error.

error "3075" en tiempo de ejecución.

Error de sintaxis(falta de operador) en la expresión de la consulta'[REGISTRO KITS].TIPO=HIGIENE FAMILIAR AND [REGISTRO DE KITS].miMes=9'

Te vuelven a fallar los nombres:

'[REGISTRO KITS].TIPO=HIGIENE FAMILIAR AND [REGISTRO DE KITS].miMes=9'

Lo de la función ya lo miraré, pero "a bote pronto", le falta añadir el campo tipo a la SQL:

miSQL = "SELECT DISTINCT DNI, [Nº MIEMBROS UNIDAD FAMILIAR], [TIPO] FROM [REGISTRO KITS]"

Además, las funciones habría que filtrarlas también por mes, para que te dieran resultados con sentido... Ahora no tengo tiempo para ponerme con ella, pero mañana la miro y te digo algo.

Ok sin problemas y gracias por adelantado.

Un Saludo

Te subo un "versión reducida" de tu BD, que sí puedo abrir en 2007, para que veas cómo funciona la nueva función y apliques los cambios en la tuya.

http://filebig.net/files/kPH29BkS3V

Modifiqué las funciones, que ahora funcionan más correctamente, añadí un módulo con variables públicas y modifiqué los procedimientos de los botones de los dos formularios.

Muchas gracias funciona perfectamente he visto que has declarado unas variables en el modulo y luego la has asignado en el evento del cmd.

Me imagino que las variables que hay por encima se pueda después de actualizar cboMes etc... lo podré borrar no? al igual que la variable vMes.

Lo que no vi es donde usaste si lo hiciste la variable elDNI, de todas formas muchas gracias por todo de verdad.

Un Saludo

Efectivamente, las variables vMes las puedes borrar (en principio, pues no recuerdo por qué las habíamos puesto, pero parece que no afectan a nada)

Creo que en tu BD tienes en algún módulo esta declaración: Public vMes as integer, que también la puedes borrar.

La variable publica elDni, la declaré por si me hacía falta, que no lo hico, y se me olvidó borrarla.

Ya realice los cambios a mi bd y funciona perfectamente, una pregunta para aprender la función que hiciste para la suma de los beneficiarios es private pero si la hubieras declarado public no habría hecho falta realizar otra verdad

Un saludo

La función es "private" porque la sql que utiliza sólo sirve para ese caso. Si la hubieses puesto como "public", el el informe de Kits, no te daría los resultados esperados, por eso hice dos funciones "private".

Cuando se hace una función "public", tienes que asegurarte de que vale para todos los casos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas