Access - Importar un dato de un combobox a un informe

 
Vista:
Imágen de perfil de Roberto
Val: 27
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Importar un dato de un combobox a un informe

Publicado por Roberto (26 intervenciones) el 21/04/2017 10:30:03
Hola a todos, como en ocasiones anteriores, recurro a vuestra ayuda.

Tengo un Informe donde realizo o deseo realizar el resultado contable de todo el año.

Mediante secuencias SQL realizo captura de los datos económicos de forma correcta. El problema es que me da el total de todos los años, y lo que pretendo es filtrar los datos por el año que elija en un combobox de un formulario.

En el informe tengo un textbox "texto81" a donde deseo enviar el año desde el combobox
Utilizo la siguiente secuencia:
DoCmd.OpenReport "Resultado_Contable", aViewReport, , "Texto81=" & Me.Cuadro_combinado3
- "Resultado_Contable" es el Informe
- "Texto81" es el textbox del informe a donde deseo llevar el año seleccionado en el formulario
- "Cuadro_combinado3" es el combobox del formulario


A continuación, una vez llenado el TextBox con el año importado desde el formulario, quisiera filtrar los datos del resto del formulario por ese mismo año. Ahora estoy utilizando la siguiente secuencia:
=DSuma("[Debe]";"[Libro_Contabilidad]";"Cuota='Anual' And Año_Apunte='Texto81.Value'")
- "Debe" es el Campo donde busca los datos de la tabla
- "Libro_Contabilidad" es el nombre de la Tabla
- "Cuota" es el campo por el que filtro en éste caso el tipo de pago "Anual"
- "Año_Apunte" es otro campo de la Tabla donde tengo los años para filtrar. Aquí intento llevar el año desde el TextBox del informe, aunque supongo que no será la forma correcta, me podríais decir como hacerlo ?

Llevo horas y cientos de páginas visitadas, he visto todo tipo de ayudas a otros internautas, pero no me ha funcionado nada hasta la fecha.

Un saludo y muchas gracias a todos
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

Importar un dato de un combobox a un informe

Publicado por Anonimo (3303 intervenciones) el 21/04/2017 17:05:21
En esta parte de la expresión, se compara un dato ('Año_Apunte') que se supone numérico, con un texto (lo cual es un error), pero el mayor error es que es un literal y tanto da que ese literal sea ('Texto81.Value') como si se le pone como texto ('Hace un día soleado').

Por orden:
.- si ambos campos son numéricos, sobran las comillas simples
.- si ('Texto81.Value') representa a una variable (o un objeto del formulario), ha de sacársele de la expresión o bien darle la ruta absoluta.

Ruta absoluta (y numérico):
..... And Año_Apunte= Forms!MiFormulario!Texto81")

Si la ruta es relativa (objeto del formulario activo):
..... And Año_Apunte= " & Me.Texto81)

Y la variación si los datos referentes fueran texto:
ruta relativa (objeto del formulario activo):
..... And Año_Apunte= '" & Me.Texto81 & "'")
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
Imágen de perfil de Roberto
Val: 27
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Importar un dato de un combobox a un informe

Publicado por Roberto (26 intervenciones) el 25/04/2017 22:54:10
Pues una vez probado, no logro ponerlo en práctica, o no me entero muy bien, o no se como hacerlo

Pero por lo que veo, estoy comentiendo un error, comparando datos, cuando lo primero que deseo, es importarlo.

O sea, lo que deseo es, que el dato que yo elija en el ComboBox "Cuadro_Combinado3", una vez hago click en el botón del formulario que lo contiene "FM_Resultado_Contable" me cierre dicho formulario y me importe el año del cuadro combinado al "Texto81" del informe "Resultado_Contable". Es que ese dato lo pongo como cabecera del informe tipo título. "Resultado Contable año: XXXX"

1
2
3
4
Private Sub Comando11_Click()
DoCmd.OpenReport "Resultado_Contable", acViewReport, , "Texto81=" & Me.Cuadro_Cobinado3
DoCmd.Close acForm, Me.Name
End Sub

Una vez tenga el dato en el "Texto81" del informe "Resultado_Contable" lo que deseo, es utilizar ese mismo dato contenido como filtro del mismo informe, para que coja los datos de la tabla "Libro_Contabilidad" pertenecientes a ese año.
1
=DSuma("[Debe]";"[Libro_Contabilidad]";"Cuota='Anual' And Año_Apunte='Texto81.Value'")

No logro ni lo uno ni lo otro.
Agradezco la ayuda y lamento no contestar y probar con más rapidez, pero entre unas cosas y otras me ha sido imposible.

Muchísimas gracias por la ayuda
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

Importar un dato de un combobox a un informe

Publicado por Anonimo (3303 intervenciones) el 26/04/2017 20:40:10
Conceptualmente hay errores, uno consiste en cerrar un objeto e intentar obtener un dato de el (si esta cerrado, a cualquier efecto 'no existe'), otro es la asignación en uno de los argumentos (que es un filtro) de un valor a un objeto.

Yo enfocaría su solución de forma diferente, lo ideal seria (antes de cerrar el formulario) guardar el dato en una variable y tras ello olvidarme del formulario (porque lo cierro , minimizo o borro en caso extremo).

Considerando pues el uso de una variable, tenemos dos opciones, una publica o una privada, personalmente optaría por la privada y mas aun por la que tiene implícita el propio informe: OpenArgs

En el formulario (y como paso previo a su cierre):
DoCmd.OpenReport "Resultado_Contable", , , , , Me.Cuadro_Cobinado3


En el informe (y en la sección donde este ubicado 'Texto81')
Me.Texto81 = Me.OpenArgs

Y si texto81 es un dato provisional (solo se utiliza para pasar el valor), lo ideal es ignorarlo y aplicar el dato allá donde corresponda:

Lo ideal:
=DSuma("[Debe]";"[Libro_Contabilidad]";"Cuota='Anual' And Año_Apunte= " & Me.OpenArgs)

Pero el signo de igualdad me hace sospechar que esa asignación se aplica en el origen del control (en diseño, no en VBA) y si es asi, no reconocerá la variable, utilizaremos una asignación en VBA: en la sección donde se ubique (presumo que el pie de pagina o asimilado)
Me.[nombre del cuadro de texto] =DSum("[Debe]";"[Libro_Contabilidad]";"Cuota='Anual' And Año_Apunte=" & Me.OpenArgs)
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