Imprimir Informe en Documentos Separados |
Responder | Página 12> |
Autor | ||
Maverick2019
Habitual Unido: 10/Junio/2019 Localización: Madrid Estado: Sin conexión Puntos: 145 |
Tema: Imprimir Informe en Documentos Separados Enviado: 24/Enero/2020 a las 14:49 |
|
Hola
Según la documentación que encontrás aquí https://docs.microsoft.com/es-es/office/client-developer/access/desktop-database-reference/database-openrecordset-method-dao) debería ser Set rsREGISTROS = dbTemporal.OpenRecordset("Fabricacion", dbOpenForwardOnly) Prueba a ver ahora...
|
||
main
Colaborador Unido: 31/Agosto/2009 Localización: OVIEDO Estado: Sin conexión Puntos: 1258 |
Enviado: 24/Enero/2020 a las 14:30 | |
HOLA Este ejemplo es sobre una consulta ya existente Dim rv As Recordset,qs As QueryDef Set qs = CurrentDb().QueryDefs("Prueba") qs.Parameters("[Forms]![GeneraReci]![RecIni]") = RecIni qs.Parameters("[Forms]![GeneraReci]![RecFin]") = RecFin qs.Parameters("[Forms]![GeneraReci]![Prop]") = Me.Prop Set rv = qs.OpenRecordset() y ya dispondras de todos los campos de la consulta en rv saludos
|
||
Boogaloozgz
Habitual Unido: 03/Abril/2014 Localización: Zaragoza Estado: Sin conexión Puntos: 50 |
Enviado: 23/Enero/2020 a las 20:45 | |
Hola Main,
No he hecho nunca lo del Querydef... ¿pero sería algo asi? Dim dbTemporal As DAO.Database Set dbTemporal = CurrentDb Dim Consulta as QueryDef Set Consulta = MiBaseDatos.CreateQueryDef ("Familia","SELECT.......;") Do While Not Consulta.EOF() DoCmd.OutputTo acReport, "InfoFamilia", "(*.pdf)", "C:\PROYECTO 976\SAHARA\ZARAGOZA\Familias\Info " & familia & " " & idExpediente & ".pdf", False, "" rsREGISTROS.MoveNext DoEvents Loop rsREGISTROS.Close dbTemporal.Close Set rsREGISTROS = Nothing Set dbTemporal = Nothing
|
||
conrrad69
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 22/Marzo/2008 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 23/Enero/2020 a las 19:04 | |
Hola, perdona que no te contestara antes. Voy liado con el curro. Como ves el problema viene de los parámetros.
En mi caso cuando me encuentro estas historias suelo escribir la consulta en el VBA, algo así: Dim sql as String sql = "SELECT ..........." Lo que hago es poner la consulta que tienes como objeto en vista SQL y copiar el código, luego lo pego en VBA y lo adapto. Los parámetros de la consulta los leo desde de aquí directamente del formulario: sql= "SELECT............FROM...........WHERE IdCliente=" & Me.IdCliente Simplificándolo mucho claro. Y luego en el recordset cargo esta sql Es mucho más complicado pero te salva ese inconveniente.
|
||
main
Colaborador Unido: 31/Agosto/2009 Localización: OVIEDO Estado: Sin conexión Puntos: 1258 |
Enviado: 23/Enero/2020 a las 17:57 | |
Hola: No lo he probado, pero si en lugar de un recordest, referencias una querydef y le asignas los parametros no funcionaria??. Saludos
|
||
Boogaloozgz
Habitual Unido: 03/Abril/2014 Localización: Zaragoza Estado: Sin conexión Puntos: 50 |
Enviado: 23/Enero/2020 a las 17:47 | |
Hola Mihura,
Si perdona, leí tu mensaje, y lógicamente hice la prueba. Set DbExterna = CurrentDb Dim Rs As DAO.Recordset Set Rs = CurrentDb.OpenRecordset("Familia", dbOpenForwardOnly) Do Until Rs.EOF ' para la prueba abro aquí un msgbox Rs.MoveNext Loop Rs.Close Me sigue saltando el error de pocos parametros se esperaba 1 (no se si es por el tema de que la consulta filtra por un parámetro del formulario)
|
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
Enviado: 22/Enero/2020 a las 19:02 | |
¿Leíste mi anterior mensaje? ... creo que es la primera vez que veo un For i= 1 to rst.Recordcount para recorrer los registros de una tabla ...
|
||
Boogaloozgz
Habitual Unido: 03/Abril/2014 Localización: Zaragoza Estado: Sin conexión Puntos: 50 |
Enviado: 22/Enero/2020 a las 18:56 | |
Hola a todos,
He conseguido lo que pretendía con la ayuda de todos, y de forma poco ortodoxa imagino. Así que os agradezco a todos y cada uno de vosotros vuestra colaboración. Os cuento lo que he hecho (no os riáis mucho de mi...): 1- Como el error que comenta Conrrad69 me daba al tener la consulta criterios he creado una tabla mediante una consulta en la que obtengo las Familias. 2- Recorro con un Recordset esa tabla, y me desplazo por ella con un For i= 1 to rst.Recordcount 3- Abro el informe filtrado por familia 4- Finalmente lo exporto a una carpeta determinada con el nombre de la Familia Con total seguridad es una "ñapa" o chapuza tremenda, pero me funciona. De todos modos me encantaría aprender a hacerlo como se debe con vuestra ayuda, así que... soy todo ojos y oídos.
|
||
Boogaloozgz
Habitual Unido: 03/Abril/2014 Localización: Zaragoza Estado: Sin conexión Puntos: 50 |
Enviado: 22/Enero/2020 a las 13:48 | |
Hola Conrrad69,
Efectivamente la consulta lee un parámetro del formulario...disculpad todos si es algo que debía haber dicho (es el problema de no controlar esto como vosotros). Te agradecería que me comentases como introducir entonces la consulta en el código del recordset. Gracias
|
||
conrrad69
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 22/Marzo/2008 Localización: España Estado: Sin conexión Puntos: 194 |
Enviado: 22/Enero/2020 a las 13:15 | |
Ese error te puede dar porque la consulta tenga parámetros (criterios) que esté leyendo de un formulario. En ese caso no te dejará cargarla en el recordset así como así. Tendrás que escribir la consulta en el mismo VBA y hacer que lea esos parámetros del formulario para poder asignarla al recordset. Ahora no estoy delante de un equipo desde el que pueda ponerte un ejemplo más claro pero esta tarde puedo verlo con más calma.
|
||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14746 |
Enviado: 21/Enero/2020 a las 18:55 | |
Sorry!
Confundí dbOpenForwardOnly (que es un tipo de apertura) con dbForwardOnly (que es una opción) |
||
Boogaloozgz
Habitual Unido: 03/Abril/2014 Localización: Zaragoza Estado: Sin conexión Puntos: 50 |
Enviado: 21/Enero/2020 a las 18:51 | |
Gracias por tu aportación Xavi,
Set rsREGISTROS = dbTemporal.OpenRecordset("Fabricacion",, dbOpenForwardOnly) Salta el mismo error de faltan parámetros. Ahora si que ando perdido del todo jajajajjaa. ¿Véis alguna otra solución o camino para conseguir lo que necesito? (si es necesario que la asociación recurra a algún desarrollador que solucione este punto creo que lo harían) |
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
Enviado: 21/Enero/2020 a las 18:49 | |
No le falta ninguna coma ...
Otra cosa es que le tire un error en el .Movelast, .MoveFirst con el parámetro dbOpenForwardOnly (que no se porqué está de moda ponerlo). Copio / Pego una prueba rápida que he hecho:
|
||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14746 |
Enviado: 21/Enero/2020 a las 18:28 | |
Creo que falta una coma...
Set rsREGISTROS = dbTemporal.OpenRecordset("Familias",, dbOpenForwardOnly)
|
||
Boogaloozgz
Habitual Unido: 03/Abril/2014 Localización: Zaragoza Estado: Sin conexión Puntos: 50 |
Enviado: 21/Enero/2020 a las 18:24 | |
Mihura, lo he hecho tal como decía:
Set rsREGISTROS = dbTemporal.OpenRecordset("Familias", dbOpenForwardOnly) El error que lanza en este caso es:Error 3061 en tiempo de ejecución. Pocos parametros. Se esperaba 1
|
||
Responder | Página 12> |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |