Tengo un formulario dónde voy cargando información y seleccionando varios registros de varias tablas. He creado un comando que es para previsualizar el informe, indicándole un registro único e irrepetible para filtrar, pero no sé le porqué cuando ejecuto el comando, en lugar de crear un informe con la información que le he introducido/seleccionado, hace tantos informes como registros hay creados. ¿Puede alguien ayudarme?
1 respuesta
Respuesta
1
1
Anónimo
En propiedades>origen de datos del informe, podrías colocar un SELECT del tipo: SELECT * FROM tuTabla WHERE idTuTabla = idFormulario.Value Cambiando lo que están en minúscula con los nombres que tu tengas: tuTabla = nombre de la tabla donde está el registro a imprimir idTuTabla = nº ID de tuTabla idFormulario = nombre del cuadro de texto donde aparece el idTuTabla Por lo que comentas, es como si solo tuvieses: SELECT * FROM tuTabla Lo que quiere decir, seleccionar toda la tabla. Pruébalo y me comentas algo.
Buenas, Antes que nada agradecerte tu ayuda. Al introducir este código por lo visto entra en conflicto con el que tenia introducido. Cuando te refieres a "en propiedades>origen de datos del informe" quieres decir en origen del registro? Si es así, yo tengo escrito el siguiente código: SELECT CabeceraPedido.NºPedido, CabeceraPedido.CódigoProveedor, CabeceraPedido.FechaPedido, CabeceraPedido.FechaEntrega, CabeceraPedido.CódigoTemporada, [Detalle Pedido].DescripciónFornitura, [Detalle Pedido].Pedida, [Detalle Pedido].PrecioCompra, [Detalle Pedido].CódigoFornitura, CabeceraPedido.IdPedido FROM CabeceraPedido INNER JOIN [Detalle Pedido] ON CabeceraPedido.IdPedido=[Detalle Pedido].IdPedido; Tengo 2 tablas dónde extrae la información este informe: CabeceraPedido, con el registro IdPedido relacionado con la tabla DetallePedido DetallePedido. Ahora en principio cuando estoy en el formulario de entrada de datos para las tablas CabeceraPedido y DetallePedido (que es un subformulario que cuelga de CabeceraPedido) y le doy al comando que genera el informe previsualizar lo hace correctamente y solamente me muestra el informe del registro que muestra el formulario. Otra consulta que te quisiera hacer es como ahora con este informe del registro actual del formulario, crear un archivo snp. y enviarlo automáticamente por email a una dirección que también se encuentra en uno de los registros del formulario. Tal y como he diseñado la instrucción para el comando, lo que me hace (otra vez) es generar un fichero con el registro actual de la tabla CabeceraPedido (hasta aquí bien) pñero con todos los registros que hay en la tabla DetallePedido. Qué debo hacer para que se genere el archivo solamente con el registro actual visionado en el formulario correspondiente a las tablas CabeceraPedido y DetallePedido? Creo que las relaciones entre estas 2 tablas son correctas. El código que he generado para que envíe automáticamente por email en informe es el siguiente. El nombre del informe es "Pedido a Proveedor". No sé dónde indicarle que coja solamente el registro visionado en el formulario: Private Sub Enviar_email_Click() On Error GoTo Err_Enviar_email_Click Dim stDocName As String Dim Email As String Email = Me.Email stDocName = "Pedido a Proveedor" DoCmd.SendObject acSendReport, stDocName, acFormatSNP, Email, , , "Nuevo Pedido" Exit_Enviar_email_Click: Exit Sub Err_Enviar_email_Click: MsgBox Err.Description Resume Exit_Enviar_email_Click End Sub Muchas gracias.
Me alegro que te funcione el tema del informe, eso si, la segunda pregunta que haces, lo de enviar el informe por email, no tengo ni idea, nunca lo he necesitado y por lo tanto, nunca lo he hecho, tendrás que plantearlo en otra pregunta.