Existe algua forma de mandar a CRYSTAL REPORT 8 el dontenido de un recordset o de un datagrid. Lo que quiero es pasar lo que tengo en una grilla a Crystal report.
Pues a ver yo hago lo siguiente me creo una tabla una copia de la estructura solamente de la tabla de donde hago la consulta y después pongo el siguiente código en el botón iprimir Private Sub Command2_Click() 'Borra todos los valores almacenados en la tabla utilizada para imprimir Dim Borrar As Database Set Borrar = OpenDatabase("v:\Conta\Conta.mdb") Borrar.Execute "delete * from conta_imprimir" Borrar.Close 'Inserta los valores de la consulta que queremos en la tabla para imprimir Dim insertar As Database Set insertar = OpenDatabase("v:\Conta\Conta.mdb") 'puedes poner cualquier consulta con condiciones 'aqui es donde se introduce la consulta,la cual mostrara los datos a datagrid y posteriormente los que se manden a Crystal. Data8.RecordSource = "Select * from conta where codigo='" & Text1.Text & "'" & "and Fecha_apun=#" & DBCombo4.Text & "#" Data8.Refresh With Data8.Recordset .MoveFirst Do 'aqui es donde se insertan los datos de la consulta en la tabla creada "conta_imprimir" insertar.Execute "insert into conta_imprimir(Codigo,Titulo,Fecha_apun,Documento,Linea,Con,Comentario,D,Importe,Debe,Haber,Saldo)" & _ "values ('" & .Fields("Codigo") & "','" & .Fields("Titulo") & "','" & .Fields("Fecha_apun") & "','" & _ .Fields("Documento") & "','" & .Fields("Linea") & "','" & .Fields("Con") & "','" & _ .Fields("Comentario") & "','" & .Fields("D") & "','" & .Fields("Importe") & "','" & _ .Fields("Debe") & "','" & .Fields("Haber") & "','" & .Fields("Saldo") & "')" .MoveNext Loop Until .EOF End With insertar.Close 'Manda a imprimir la tabla para imprimir Data8.RecordSource = "select * from conta_imprimir" Data8.Refresh If Data8.Recordset.AbsolutePosition = -1 Then MsgBox "NO HAY DATOS" Else imprimir End If End Sub CrystalReport1.Action = 2 'accion de imprimir End Sub Bueno Espero que te ayude Suerte y Saludos
Gracias, todo esta bien, pero el problema que surge es que cuando realizo operaciones(no necesariamente aumentar la cantidad de registros) con access el archivo va creciendo de tamaño, a menos de abra el archivo en access y lo "Repare y Compacte", dime hay alguna forma de reparar y compactar mediante código en visual basic, o en todo caso como hacer para evitar que el achivo de la BD de access crezca tan rapido. Gracias
Gracias por la respuesta. Cuando uno realiza operaciones en access ya sea de agregar, quitar o simplemente modificar un registro, por más que la cantidad de registros sea la misma o incluso menor el tamaño(kb o Mb) de la base de datos va a crecer ya que siempre se crea una especie de historial en la BD de access, es algo así como una pequeña basurilla, la cual si quieres que desaparezca tendrás que "reparar y compactar", así la BD tomara su tamaño real, eso es lo que pasa cuando uno realiza operaciones en la BD, me he enterado que con DBEnginee(o algo así) se puede reparar y compactar mediante código en VB sin necesidad de ir a access, pero no se como se usa, no se si tu sabes algo al respecto y me puedas ayudar. Voy a revisar las páginas que me mandas a ver si encuentro algo. Gracias nuevamente.
Perdona mi torpeza pero no entiendo lo de que crece de tamaño cuando realizas ciertas operaciones ¿? ¿?. Si haces operaciones de insertar registros la BD deberá aumentar, eso no se puede evitar, poidrias explicarte un poco mejor. Sobre lo de compacttar o reparar nunca lo he probado, mira en estas páginas y puede que encuentres algo. http://www.softonic.com , http://www.lawebdelprogramador.com , http://www.espaware.com http://guille.costasol.net
Siento no poder ayudarte mejor con eso pero espero que encuentres lo que buscas en esas página Suerte y ya sabes, para lo que necesites