Principales respuestas
Problema con vba de access en informe al imprimir me 'duplica' campos

Pregunta
-
Hola compañeros,
tengo una aplicación con access 2007 donde hago un uso 'generoso' del vba para poder analizar/comparar campos de la consulta
que carga el informe com muchos bucles if.....
Muy por encima... lo que pretendo es que mi aplicación me cargue las variables de una fabricación 'saliente' y una fabricación 'entrante'..me las compare y me genere un resultado (que me diga lo que ya me vale y lo que necesito cambiar). También en un texbox me escribe a lineas lo que necesito para cubrir el cambio de fabricación.
El problema me surge cuando en la vista preliminar lo encuentro correcto... pero al imprimir se me 'duplican' los campos. Un ejemplo de resultado puede ser:
1-tope estación 1 medida xx
2- anillo estación 3
3- arandela estación 5
1-tope estación 1 medida xx
2- anillo estación 3
3- arandela estación 5
la función que me escribe en el texbox es:
Private nlinia As Integer (la tengo declarada fuera del codigo sino me genera error) Public Sub prepara(ByVal entrada As String) Dim vtexte As String nlinia = nlinia + 1 If nlinia >= 1 Then Me.txt_ent = Me.txt_ent '& vbCrLf vtexte = entrada 'escribimos en el txt Me.txt_ent.Value = Me.txt_ent & nlinia & " - " & vtexte & vbCrLf End If End Sub
¿Que hago mal? me han sugerido que no inicio correctamente las variables pero no 'entiendo' porque al imprimir me lo vuelve a cargar todo...
Gracias por adelantado
Spandau
- Editado Spandau martes, 27 de diciembre de 2011 9:05
Respuestas
-
Imagino que la duplicidad de la que hablas es la consecuencia de la concatenación:
Me.txt_ent = Me.txt_ent '& vbCrLf
Aquí pueden pasar dos cosas. Si haces una vista preliminar y después una impresión no se "reinician" correctamente los recordsets del report. No entiendo muy bien la razón de por qué lo hace, pero es posible si es un subinforme. ¿Qué ocurre si imprimes sin hacer una vista preliminar?.
me han sugerido que no inicio correctamente las variables
Realmente creo que es este el problema. Intenta inicializar las variables en el Report_Load.
- Marcado como respuesta Spandau jueves, 29 de diciembre de 2011 8:16
Todas las respuestas
-
-
-
Imagino que la duplicidad de la que hablas es la consecuencia de la concatenación:
Me.txt_ent = Me.txt_ent '& vbCrLf
Aquí pueden pasar dos cosas. Si haces una vista preliminar y después una impresión no se "reinician" correctamente los recordsets del report. No entiendo muy bien la razón de por qué lo hace, pero es posible si es un subinforme. ¿Qué ocurre si imprimes sin hacer una vista preliminar?.
me han sugerido que no inicio correctamente las variables
Realmente creo que es este el problema. Intenta inicializar las variables en el Report_Load.
- Marcado como respuesta Spandau jueves, 29 de diciembre de 2011 8:16
-
-
Lo tengo todo en el format:
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
tengo todo el vba dentro del Format anteriormente mencionado (excepto las funciones), y me va muy lento... ¿donde és el mejor lugar para ubicar el código?
Spandau- Editado Spandau martes, 27 de diciembre de 2011 23:36
-
Esta es la explicación del sitio oficial de Microsoft.: http://msdn.microsoft.com/en-us/library/aa159637%28v=office.10%29.aspx
Puedes hacer varias cosas:una es crear una variable en el reporte, en la seccion principal y en el evento format, le das valor. variable que usarás como bandera (flag). Otra es que al imprimir si tu text es diferente de '', salta el procedimiento que lo llena.
-
Gracias por vuestras aportaciones,
al final he optado por seguir el consejo de Jesús Velasco,
he creado un boton con vista previa y otro para imprimir,
todos los informes los imprimo después de la vista previa menos este....pero és la solución más facil.
Gracias
Spandau