Sub-informe basado en Consulta Access 2007

Tengo un Formulario en el cual ingreso datos para almacenarlos en una base de datos. Este formulario además posee un sub-formulario donde se cargan detalles del registro actual (similar a detalles de facturación de una factura especifica). He incluido en el formulario un botón imprimir que abre un informe (basado en una consulta) donde se ven los datos del Registro y el detalle (en modo sub-informe), vinculados por un campo clave texto. Todo marcha bien pero el problema es que si en el detalle de mi registro actual (sub-formulario) hay 10 detalles cargados, el informe me aparece con 10 páginas. ¿Qué estoy haciendo mal?. El código del boton_imprimir es:

Private Sub impr_reg_actual_Click()
DoCmd.OpenReport "IMPRESION_DATOS_VISTA", acPreview, "", "[RCSL_CONSULTA]![STR]='" & Me.Str & "'"
End Sub

Str es el campo clave vinculado.

1 Respuesta

Respuesta
1

Lo que haces "mal" es basar el informe sobre al consulta, pues la consulta te devuelve tantos "Registros principales" (datos del registro) como detalles tenga ese registro.

Lo que has de hacer es el informe sobre la tabla principal y un subinforme sobre la tabla de detalles, del mismo modo que el formulario con el subformulario. Luego en el informe insertas el subinforme, lo vinculas por el campo y listo.

Una vez mas gracias Sveinbjorn El Rojo!... Ahora una consulta mas de ser posible. No se si recordaras el Formulario de Búsqueda con textbox para diversos criterios el cual me habías ayudado a modificar?. Bueno recuerdo que entre tantas consultas que te habia hecho, estaba la de seleccionar un resultado del listbox y me habias sugerido este código: 

Private Sub Lista_RESULTADO_Click()
DoCmd.OpenReport "MI INFORME", acPreview, , "[MI CAMPO]='" & Lista_RESULTADO & "'"
End Sub

Bueno sucede que me arroja el preview con los campos en blanco. El Listbox esta basado en una consulta con criterios Como "*" & ([Formularios]![RCSL_BUSQUEDA_admin]![txt_MES]) & "*" y agrupado por para evitar resultados duplicados. El informe esta basado en la tabla principal. Ojala puedas ayudarme. Saludos!

Si el informe te lo abre en blanco, es porque tienes mal construido el filtro (o no tienes datos para el filtro usado, que no creo que sea el caso)

El código de Al hacer click en Lista_Resultado ha de ser similar al que tienes para abrir el informe filtrado (impr_reg_actual_Click()), pero en vez de pasarle el valor del campo Str, le pasas el que toma el cuadro de lista, teniendo en cuanta el tipo de dato que sea y el campo que quieres filtrar.

¡Gracias!. El código que tengo es el siguiente...

Boton_imprimir Registro actual (otro formulario, otro informe):

Private Sub impr_reg_actual_Click()
DoCmd.OpenReport "IMPRESION_DATOS_VISTA", acPreview, "", "[BD_PRINCIPAL]![STR]='" & Me.Str & "'"
End Sub

Intenté sustituyendo el nombre del informe actual y '" & Me.Str & "'" por '" & Lista_RESULTADO & "" pero nada... Perdona mi ignorancia pero mi escaso conocimiento de VB me traiciona.

Saludos!

Necesitaría ver lo que tienes para poder decirte a tiro fijo. Si quieres sube una copia de tu BD (vía dropbox, filebig, ...), indicándome el formulario y el informe que intervienen y te digo algo.

¡Gracias!. Ya solucioné el problema. Era el diseño de la consulta y la columna dependiente, cambié de lugar la columna del campo clave y funcionó. De todas maneras agradecido por tan valiosa ayuda!

Ahora analizando bien la situación creo que sería conveniente crear un botón para imprimir una selección múltiple del listbox, pues habla ocasiones en que se querrá imprimir uno o algunos de toda la lista desplegada en la búsqueda. Como podría hacer eso?.

Eso ya es cuestión de una nueva pregunta, pues nada tiene que ver con la pregunta original.

Por esta vez te respondo aquí, pero si se te plantean más dudas, abre una nueva pregunta.

Si quieres usar selección múltiple en el cuadro de lista, el filtro lo tienes que construir usando IN (valor 1, valor 2...) en vez del =.

Te dejo un enlace a un ejemplo en el que construyo un filtro para abrir un formulario (es lo mismo para un informe) a partir de un cuadro de lista de selección múltiple: http://siliconproject.com.ar/neckkito/index.php/component/content/article/93-ejemplos-explicados/ejemplos-de-formularios/209-formulario-buscador-al-tecleo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas