Cómo imprimir datos activos del subformulario.

Tengo un formulario que se llama Vuelos con detalles de cada vuelo, y dentro un subformulario donde se ven las personas que integran estos vuelos.

Quiero agregra un Boton que me imprima el listado de personas que contiene el el subformulario activo que son las personas que integran un vuelo X.

1 respuesta

Respuesta
1

Se me ocurre que hagas esto:

1º/ Crea un informe sobre la tabla en la que guardas las personas de cada vuelo, con el diseño que prefieras y te guste. Lo llamas rptListadoPersonas, por ejemplo.

2º/ Imagino que en tu tabla Vuelos tendrás un identificador único (por ejemplo ID), relacionado con un campo de la tabla Personas (por ejemplo Vuelo)

En el botón (situado en el formulario principal), le generas este código:

Private Sub NombreBoton_Click()

DoCmd.OpenReport "rptListadoPersonas",,,"Vuelo=" & Me.ID

End Sub

Hola Sveinbjorn El Rojo, Hice lo que me recomendaste, pero me dice: Introduzca el valor del parametro... como en una consulta paramétrica.. puede que falte algo..

Por otra parte tenía el problema resuelto a mi manera: había hecho un informe de una consulta paramétrica que cargaba los datos que me hacían falta, y al pinchar el boton imprimir en el formulario principal debía introcucir el código del Vuelo, esto funciona bien pero es poco elegante, además puedes equivocarte...

Gracias..

Si copiaste la línea de código que te puse yo, es normal que te de ese "error". Tienes que adaptarla a los nombres que tu tengas.

La modifiqué, aunque no había interpretado bien, la arregle pues había entendido que Vuelo era una tabla, envés de un campo.. lo arreglé pero ahora me dice:

Error 3464

No coinciden los tipos de datos en la expresión de criterios..

este es el código:

Private Sub Comando124_Click()
DoCmd.OpenReport "Vacaciones", , , "Pass_colab=" & Me.Codigo_vacaciones
End Sub

Gracias!!

Imagino que tu campo es de texto, ¿no?

Ponlo así:

DoCmd.OpenReport "Vacaciones", , , "Pass_colab='" & Me.Codigo_vacaciones & "'"

Me imprime todos los registros de todos los vuelos, en vez del que está activo en el formulario principal.

Creo que omito cosas.. Está la tabla Vuelos con su ID y otros campos..

La tabla Trabajadores con su ID: pasaporte

Y entre estas dos tablas hay una relación de muchos a muchos.. y para ellos creé la tabla detalle_vuelos que contiene los ID de ambas tablas...

El informe proviene de una consulta realizada a estas tablas..

Gracias..

Sin ver tu BD es difícil orientarte, pero lo voy intentar:

La parte del filtro ("Pass_colab='" & Me.Codigo_vacaciones & "'") tiene que tener esta estructura:

Nombre de la tabla/consulta por el que vas a filtrar (Pass_colab) y el valor que quieres filtrar (Me.Codigo_vacaciones)

Dicho esto, tendrás que poner el campo de tu consulta que estando en el formulario principal se relacione de forma única con tu subformulario.

¡Gracias!

Honestamente no pude hacerlo, así... pero encontré una solución, hice el informe que dependía de una consulta paramétrica,.. y entre los corchetes de esta le puse:

[Formularios]![Vacaciones]![Codigo_vacaciones]

Para que cuando pinchara en el botón para imprimir con el código DoCmd.OpenReport "colaboradoresVuelos" en el formulario principal tomara el código que estaba en el campo activo, en ves de entrarle el valor del código de vuelo cuando me lo preguntara, pensaba que no iba a funcionar.. pero funcionó ja ja

Mil gracias.. es usted muy atento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas