Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/09/2004, 11:22
Avatar de jrp01
jrp01
 
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años, 6 meses
Puntos: 0
'Ok primero tu BD de access la van a usar varios usuarios?
'si es asi te sugiero que cambies a algo mas grande SQL server, etc.....

la conexion:
Seleciona en proyecto->referencias: Microsoft ActiveX Data Objects XX.XX
luego en un modulo:

Public cn As New ADODB.Connection


en el load de la forma:
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\tubase.mdb" & ";Persist Security Info=False;Jet OLEDB:Database Password=tu_pass"

Si deseas validar usuarios eso otra cosa.

Para crystal en Proyecto (en mi caso tengo Crystal 8.5 developer) en referencias:

Crystal Report engine 8 Object Library (En micaso es 8 por mi version)
Crystal Report Viewer Control
Crystal Report 8.5 ActiveX Desingner Run time library
Crystal Report 8.5 ActiveX Designer Desingn and Run time library
Crystal Report Viewer control

En una forma colocas el CRViewer
Cuando mandes llamar imprimir por ej. un boton pon:
ReportViewerFrm.Show 'suponiendo que asi se llama la forma donde esta el control.

en el modulo (esto viene en la pagina de Crystal en los ejemplos):

Global crxApplication As New CRAXDRT.Application
' Declare report object
Global crxReport As CRAXDRT.Report
' Declare database objects
Global crxDatabase As CRAXDRT.Database
Global crxDatabaseTables As CRAXDRT.DatabaseTables
Global crxDatabaseTable As CRAXDRT.DatabaseTable
' Declare the section objects
Global crxSections As CRAXDRT.Sections
Global crxSection As CRAXDRT.Section
' Declare the subreport objects
Global crxSubreport As CRAXDRT.Report
Global crxSubreportObject As SubreportObject
' Declare a Font Object.
Global crxFont As IFontDisp
' Declare our Field Object.
Global crxFieldObject As CRAXDRT.FieldObject
Global crxTextObject As CRAXDRT.TextObject
Public rs As New ADODB.Recordset

En la forma con en control:
en el Load:
sentencia = "tu sentencia SQL"
Set rs = cn.Execute(sentencia)
Screen.MousePointer = vbHourglass
Set crxReport = crxApplication.OpenReport(App.Path "\tu_reporte.Rpt")
crxReport.DiscardSavedData
Set crxDatabase = crxReport.Database
Set crxDatabaseTables = crxDatabase.Tables
crxReport.Database.SetDataSource rs
CRViewer1.ReportSource = crxReport
CRViewer1.EnableExportButton = True
CRViewer1.DisplayGroupTree = False
CRViewer1.ViewReport
ReportViewerFrm.WindowState = vbMaximized
CRViewer1.Zoom 100
Screen.MousePointer = vbDefault

en el Resize de la forma:
With CRViewer1
.Top = 0
.Left = 0
.Width = Me.ScaleWidth
.Height = Me.ScaleHeight
End With

En el unload de la forma:
Set crxReport = Nothing
Set crxApplication = Nothing
Set crxDatabase = Nothing
Set crxDatabaseTable = Nothing
Set crxDatabaseTables = Nothing
Set crxSubreport = Nothing
Set crxSubreportObject = Nothing
Set CrSubreport = Nothing
Set CrSubreport1 = Nothing
Set CrSubreport2 = Nothing


Me imagino que ya sabes crear reportes. Te sugiero que lo hagas por archivos TTX asi no dependes de la BD y no por ODBC.



Última edición por jrp01; 03/09/2004 a las 11:23