Ayuda para imprimir

Deseo imprimir un reporte creado en cristal report v 4.6, la base de datos esta en access xp y esta protegida por contraseña.
Me gustaría que me regalaran un código de ejemplo para imprimir un reporte cuando la base esta con contraseña.

3 Respuestas

Respuesta
1
Que tal puedes ocupar este código
Set con = CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"DbQ=C:\Bd\base.mdb;" & _
"Exclusive=1;" & _
"Uid=admin;" & _
"Pwd=net"
Set Con = CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"DbQ=C:\obsequios\bdobsequios.mdb;" & _
"Exclusive=1;" & _
"Uid=admin;" & _
"Pwd=froy20"
RPTOBSEQUIOS.ReportFileName = (App.Path & "\obsequios.rpt")
RPTOBSEQUIOS.SelectionFormula = "{CONTROL.CATEGORIAPREMIO}= '" & CMBCATEGORIA & "'"
RPTOBSEQUIOS.Destination = 0
RPTOBSEQUIOS.Action = 1 AQUI ME MUESTRA EL ERROR
¿Si estas manejando ACCESS como BD?...?
Si
Pues con el texto que te di... es para entrar en modo exclusivo a algún reporte.. así debes de ingresar.. aunque el reporte.. lo tienes el crystal.. amm.. necesitarías chequear la conexión desde cristal para poder ingresar a la base de datos!
Respuesta
1
El Error esta al pasarle el parámetro pero te salta cuando lo mandas a ejecutar.
Si la fórmula esta mal.
Hola te paso esto que encontré suma para saber...
Cuantas veces hemos querido introducir información complementaria en nuestros informes, información que no tiene la base de datos, pero no hemos sabido como. Aquí se encuentra la solución.
En el diseñador podemos introducir cuantas fórmulas queramos y en la posición, tipo, tamaño y fuente que queramos. Pues bien, al añadir fórmula, introducimos un nombre y en el cuadro de diseño de la fórmula introducimos "" ( si, dobles comillas ).
Una vez hecho esto colocamos la caja de texto que nos ha generado el diseñador, donde queramos.
Cuando emitamos el informe, queremos introducir en esa caja la información. Por ejemplo en nombre completo del informe, algo así como "Listado de clientes desde el 1 de Enero al 31 de Diciembre", por ejemplo. ¿Veamos el ejemplo?
Form1.CR1.Formulas(0) = "Titulo=' Listado de Clientes '"
Form1.CR1.Formulas(1) = "Subtitulo='1 de Enero a 31 de Diciembre 1998 '"
O bien?
Dim Titulo1 as String
Dim Titulo2 as String
Titulo1 = "Listado de Clientes"
Titulo2 = "1 de Enero a 31 de Diciembre 1998"
Form1.CR1.Formulas(0) = "Titulo='" & Titulo1 & "'"
Form1.CR1.Formulas(1) = "Subtitulo='" & Titulo2 & "'"
Y acá por la selectionformula
SelectionFormula
Aquí vemos la madre de todas las propiedades. Con ella montamos los filtros que queremos usar para que nuestro informe muestra una u otra cosa.
Su uso
Form1.CR1. SelectionFormula ="{Ofertas.OferCliente} ='" & Cliente.Text & "'"
Descargamos una variable de tipo String sobre una tabla
o?
Total_Final = Val(Total.Text)
Form1.CR1. SelectionFormula ="{Ofertas.Total} =" & Total_Final & ""
Descargamos una variable de tipo Numérico sobre una tabla
¿o?
Form1.CR1. SelectionFormula ="{Ofertas.OferCliente} ='Yo Mismo'"
Descargamos una cadena fija sobre una tabla
¿o?
Form1.CR1. SelectionFormula ="{Ofertas.Total} =12"
Descargamos un Número fijo sobre una tabla
Bueno, esto está claro para este tipo de cosas. Recordemos que lo que va entre corchetes es:
{Nombre_de_ la_ tabla . Campo}
Pero ahora, las complicaciones.
Esta propiedad admite encadenamientos de tipo AND, así como reordenamientos de ficheros con ORDER BY. Su sintaxis es de tipo SQL aunque no admite todos sus parámetros y tiene ciertas particularidades.
Veamos como se comporta SelectionFormula en un selección sobre un rango de fechas, que es donde difiere de verdad del SQL tradicional.
Observa esta proción de código:
Dim Primera As Date
Dim Ultima As Date
Primera = CDate(Fecha1.Text)¿? Se supone que en Fecha1.text y Fecha2.Text tengo fechas validas
Ultima = CDate(Fecha2.Text)
Dia1 = Day(Primera) ? Ahora descompongo la fecha en trocitos para que CR no se
Mes1 = Month(Primera) ? atragante
Agno1 = Year(Primera)
Dia2 = Day(Ultima)
Mes2 = Month(Ultima)
Agno2 = Year(Ultima)
CR1.SelectionFormula="{Ofertas.OferFechaPropuesta} in Date(" & Agno1 & "," & Mes1 & "," _
& Dia1 & ") to Date(" & Agno2 & "," & Mes2 & "," & Dia2 & ")"
CR1.Destination=1
CR1.Action=1
Me es muy difícil explicar este tramo
Excelente idea gracias por tu tiempo
Set Con = CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"DbQ=C:\obsequios\bdobsequios.mdb;" & _
"Exclusive=1;" & _
"Uid=admin;" & _
"Pwd=froy20"
RPTOBSEQUIOS.ReportFileName = (App.Path & "\obsequios.rpt")
RPTOBSEQUIOS.SelectionFormula = "{CONTROL.CATEGORIAPREMIO}= '" & CMBCATEGORIA & "'"
RPTOBSEQUIOS.Destination = 0
RPTOBSEQUIOS.Action = 1 AQUI ME MARCA UN ERROR
¿El programa donde se para cuando da el error?
Set db = WrkJeT.OpenDatabase(App.Path & "\BDOBSEQUIOS.mdb", True, False, ";PWD=froy20")
tu base tiene pas, ¿no te faltaria ponerle el usuario=admin???
Lo que pasa es que me esta saliendo este mensaje cada vez que voy a imprimir error en tiempo de ejecución 20536 unable to connect: incorrect long on parameters y no se como solucionarlo, aquí te paso el código que tengo para imprimir:
Private Sub BTNIMPRIMIR_Click()
Dim WrkJeT As Workspace
Dim db As Database
Set WrkJeT = CreateWorkspace("", "admin", "", dbUseJet)
Set db = WrkJeT.OpenDatabase(App.Path & "\BDOBSEQUIOS.mdb", True, False, ";PWD=froy20")
db.NewPassword "froy20", ""
db.Close
Set dbs = Nothing
WrkJeT.Close
Set WrkJeT = Nothing
RPTOBSEQUIOS.ReportFileName = (App.Path & "\obsequios.rpt")
RPTOBSEQUIOS.SelectionFormula = "{CONTROL.CATEGORIAPREMIO}= '" & CMBCATEGORIA & "' "
RPTOBSEQUIOS.Destination = 1
RPTOBSEQUIOS.Action = True
End Sub
No funciono sigue marcando el mismo error
Proba agregar esto antes del action
CrystalReport1. RetrieveDataFiles
CrystalReport1.Action = 1
Que la base de datos tenga contraseña no es un impedimento para imprimir en crystal report, porque vos solo le pasas el recordset o la consulta una vez realizada la conexión.
Saludos leandro.
Al menos que estés imprimiendo en el crystal directamente, pero es el mismo caso para acceder tienes que primero hacer la conexión, donde te pide datos de la contraseña, en access el usuario es admin y la contraseña la tuya.
Respuesta
1
Genera una variable de conexión de la misma forma que la utilizas cuando te conectas a tu base de datos y se la pasas en el método connect.
frmRegistroInformacion.Acuse.Connect = MsAux$
No entendí muy bien te agradecería con un código de ejemplo gracias
Este es el código que estoy utilizando lo raro es que tengo un reporte diferente con el mismo código y funciona
Cuando llego .action = 1 me sale una pantallita pequeña donde me pide la clave de la base de datos y se la dígito y me sale el error 20534 error dectectado por dll o algo así
Private Sub BTNIMPRIMIR_Click()
Dim db As Database
Dim RDSCONTROL As Recordset
Dim AUX As Variant
Dim WS As Workspace
Set WS = DBEngine.Workspaces(0)
Set db = WS.OpenDatabase(App.Path & "\BDOBSEQUIOS.mdb", True, False, ";PWD=froy20")
Set RDSCONTROL = db.OpenRecordset("CONTROL", dbOpenTable)
RDSCONTROL.Index = "NUMFACTURA"
RDSCONTROL.Seek "=", Val(FRMMENU.TXTNUMFACTURA)
If RDSCONTROL.NoMatch Then
Else
AUX = RDSCONTROL("NUMFACTURA")
With ROBMENORES
.ReportFileName = App.Path & "\REGALOS.rpt"
.SelectionFormula = "{CONTROL.NUMFACTURA}= " & AUX & ""
.Destination = crptToWindow
.PrintFileType = crptCrystal
.Action = 1 'aqui me da el error
End With
End If
BTNIMPRIMIR.Enabled = False
RDSCONTROL.Close
Set RDSCONTROL = Nothing
db.Close
Set db = Nothing
End Sub
En las siguientes ligas hablan de este problema:
http://www.macoratti.net/cr_vb_1.htm
http://support.businessobjects.com/library/kbase/articles/c2006736.asp
http://support.businessobjects.com/library/kbase/articles/C2006737.asp
Excelente ayuda
La variable MsAux$ deberá de contener el método de conexión a tu base de datos con todo y tu usuario y contraseña.
El ejemplo de conexión lo encuentras en la siguiente página:
http://www.connectionstrings.com
Y la siguiente instrucción:
FrmRegistroInformacion. Acuse. Connect
Es una forma en la que tengo un crystal report y se llama acuse.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas