La Web del Programador: Comunidad de Programadores
 
    Pregunta:  17485 - VISUAL BASIC 6.0, ACCESS 2000, ADO Y CRYSTAL REPORT 6.0
Autor:  Miguel Peredo
Hola, estoy creando un programa en Visual Basic 6.0 usando el motor ADO y bases de datos Access 2000...

Mi problema lo encontre al intentar usar Crystal Reports 6.0, debido a que este no me reconoce las BD de Access 2000... y el otro problema es que trabajo con ADO sin (obviamente) usar Controles Data.

Como lo hago? hay alguna solución? que me recomiendas? ¿sugerencias?

Adios y Saludos
gracias.

  Respuesta:  ilp ilp
conexiona crystal por dsn a la bd luego create una funcion a la q mandar los procedimientos de filtrado del tipo:

Public Sub LanzaInforme(ByVal r As String, ByVal p1 As Variant, ByVal p2 As Variant)

Dim p As Variant
Dim n As Integer

'Conexión con el servidor
On Error GoTo ErrorLanzandoInforme
Screen.MousePointer = vbHourglass
If frmMain.cryInforme.Connect = "" Then
frmMain.cryInforme.Connect = "ODBC;DSN=ASIGNA;usr=guest"
End If
frmMain.cryInforme.ReportFileName = DirReport & r
'Comprobar y liberar parámetros
frmMain.cryInforme.RetrieveStoredProcParams
If InStr(p1, "¬") Then
For n = 1 To CountVar(p1, "¬")
p = LoadVar(p1, n, "¬")
If IsDate(p) Then p = Format(p, FECHA_CRYSTAL)
If Not IsNull(p) Then frmMain.cryInforme.StoredProcParam(n - 1) = p
Next n
Else
If IsDate(p1) Then p1 = Format(p1, FECHA_CRYSTAL)
If IsDate(p2) Then p2 = Format(p2, FECHA_CRYSTAL)
If Not IsNull(p1) Then frmMain.cryInforme.StoredProcParam(0) = p1
If Not IsNull(p2) Then frmMain.cryInforme.StoredProcParam(1) = p2
End If
frmMain.cryInforme.WindowTitle = LoadVar(r, 1, ".")
frmMain.cryInforme.PrintReport
FinInforme:
Screen.MousePointer = vbDefault
Exit Sub

ErrorLanzandoInforme:
Screen.MousePointer = vbDefault
MsgBox frmMain.cryInforme.LastErrorString & vbCrLf & error, vbCritical
End Sub