Imprimir un informe desde un Array

Desde unas tablas he conseguido introducir los valores en un array.
En el informe resultante he de poner los campos en unas determinadas posiciones, con lo que he de asignar los valores del array a los campos del informe, pero me da error.
Consigo verlos pero no asignarlos.
Los campos independientes del informe los llamo Dia1, Dia2... Etc.
El código es:
Dim srtDia As Recordset
Dim MisDias() As Variant
Dim Dia1 As String
Dim rst As DAO.Recordset
' Relleno los días
    Set rst = CurrentDb.OpenRecordset("SELECT Dia FROM Parafirmas WHERE (((Parafirmas.Dia)>#10/1/2009# And (Parafirmas.Dia)<#10/31/2009#));")
    rst.MoveLast
    rst.MoveFirst
    ReDim MisDias(1 To rst.RecordCount)
    rst.MoveFirst
    For i = 1 To rst.RecordCount
        MisDias(i) = rst!Dia
        rst.MoveNext
    Next
 'Cierro
    rst.Close
    Set rst = Nothing
 'Los veo
    For i = 1 To UBound(MisDias)
        MsgBox MisDias(i)
    Next
A partir de aquí no encuentro como asignarlos a los Dia1... Del informe

1 Respuesta

Respuesta
1
dia1 = MisDias(0)
dia2 = MisDias(1)
Gracias.
Tu sistema e da error, en realidad lo he resuelto con
If i = 1 Then
            Dia1.Caption = rst!Dia
        End If
Me queda por resolver un problema.
No se como imprimir una página y saltar a la siguiente cuando el array tiene más de 10 filas o más de 5 columnas.
La condición sí, lógicamente, pero me falta el código de:
1. Imprime esta y
2. Salta de página
Cuenta 10 item de tu array y envías a imprimir, luego los siguientes 10 y así sucesivamente
¿Podrías indicarme con que código?
He probado varias opciones, pero no acierto de que forma hacerlo.
Complicado decirte como si no me has dicho como estas imprimiendo
Disculpa.
Los arrays los he introducido en el evento Al Abrir
He intentado hacerlo mediante:
Una vez cargadas 10 filas y 5 columnas veo el previo de la primera página.
stDocName = "asistencia"
    DoCmd.OpenReport stDocName, acPreview
    If Counter > 5 Then
        Me![Salto].Visible = True
Cargo los 5 valores siguientes, conservando las 10 filas y ejecuto de nuevo de DoCmd, pero imprime (pervio) solo la primera página y pasa olímpicamente de mi.
El introducir el salto de esa forma la he obtenido de una consulta en el mismo microsoft, pero no me funciona.
Crea las diferentes páginas de 10 registros, luego envía a imprimir página por página por cada 10 registros que tienes
Supongo que debe ser muy obvio, pero no se como crar varias páginas.
¿Se trata de insertar un salto de página?
¿De repetir los campos?
Disculpa, por lo visto estoy especialmente espeso.
Saludos
Ok, te cambio las palabras...
Lee los primeros 10 items dle array, armas el reporte, luego vuelves u lees los siguienets 10 items del array, vuelve y armas el reporte como si fuera el primero, y así, sucesivamente hasta que agotes los items en el array.
¿Armar el reporte es...
 DoCmd.OpenReport stDocName, acPreview 
porque asi no me funciona.
¿Tu sabes que es un reporte? ¿No sabes como armas el reporte?
Esa instrucción que me colocas no me dice nada, que tipo de reporte estas haciendo.
El reporte lo he montado con 10 campos independientes (que son 10 filas de la primera columna ) y 5 campos independientes más, que son las 5 columnas restantes. Algo así:
Conferencia   dia1 dia2 dia3 dia4 dia5
asistente1
asistente2
...
asistente10
Solo caben 5 días / 10 asistentes.
La forma de obtener el valor de los campos la muestro arriba. Soy capaz de ver los campos con un MsbBox, pero no de imprimirlos, ni mostrarlos en una vista preliminar.
¿El reporte de Crystal reports como lo creaste? Si no logras mostrar los datos, es porque no le estas pasando los datos al reporte.
Ignoro si el código original era de Crystal report o no, o porqué deduces que procede de Crystal, pero no dispongo de esa aplicación.
Yo he creado un informe con MS Access 2003, en el cual he puesto las etiquetas cuyos valores capturo mediante el procedimiento que describo, en el [Procedimiento de evento] al Abrir.
En principio me da lo mismo un camino que otro, lo único que quiero conseguir como resultado un informe que por ejemplo para 15 asistentes y 7 fechas me imprima 4 páginas:
pag1 asistentes 1 al 10, fechas 1 a 5
pag2 asistentes 1 al 10, fechas 6 y 7
Pag 3 asistentes 11 al 15 fechas 1 a 5
pag4 asistentes 11 al 15 fechas 6 y 7
Si crees que el camino para hacerlo es erróneo lo cambio, lo cierto es que no encuentro la solución. Ni con subinformes, ni con nada.
Si me puedes facilitar una alternativa o ejemplo donde ver como hacerlo, te lo agradecería, tampoco quiero hacerte perder el tiempo.
Si ubiueras dicho desde que pregunte que tipo de reporte... si el reporte es de access, el codfigo que estas usando es para imprimir un reporte creado pro crystal report no un reporte creado de access.
Otra cosa tu estas es haciendpo una aplicación en access, ¿cierto? No es con un ejecutable de VB6 y base de datos access.
Lo cierto es que no se como imprimir un reporte creado en access. Lo siento

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas