DUDAS sobre Crystal Report y VB for Aplication

Lyn
31 de Marzo del 2005
Hola, quisiera aprovechar la oportunidad para formular varias preguntas, si me lo permite, que son dudas que tengo y en otros casos cosas que no sé como hacerlas.

De antemano le estoy muy agradecido y en lo que le pueda ayudar, que esté a mi alcance, pues sin duda lo haré.


Preguntas (IMPORTANTE --> Trabajo con Visual Basic 5.0 y Crystal Report 4.5)
===========================================================

1) Resulta que tengo un reporte que por cuestiones de ahorro de papel me he visto en la obligación de mostrar sus datos con Fuente: Arial Narrow = 8, de esta manera, en la pantalla la información es impsoible de leer pero cuando se manda a imprimir, todo sale muy bien, o sea, con tamaño 8 y muy legible.
Entonces mi pregunta está en que si es posible mostrar en pantalla el reporte a un porciento mayor (150%, 200%) tal y como se hace con Word para resolver el problema de poder leer sus datos y luego cuando se imprima pues lo haga en el porciento que trae por defecto en tiempo de diseño.

2) Necesito mostrar un reporte en formato .RTF (o Word) utilizando las propiedades correspondientes al ActiveX del Crystal Report: .PrintFileName = "Nombre del fichero", .PrintFileType = crptRTF, .Destination = crptToFile; resulta que todo está bien hasta que trato de hahacerle el .PrintReport que me da un error de automatización de esos que uno no sabe ni por qué suceden. Lo curioso es que a pesar de este error el proceso de exportármelo funciona, lo único que ahí mismo me da el error.
Si comienzo a trasear el código, cuando llego a la instrucción:
Res% = F_Main.CrystalReport1.PrintReport, me genera dicho error, que además no se puede interceptar si continuo con la próxima línea y vuelvo a intentar listarlo pues en la variable Res% me devuelve el numero:
20520 -->> El trabajo de impresión ya ha empezado. Está intentando iniciar un trabajo de impresión que ya está iniciado. Esto puede suceder cuando el usuario inicia un trabajo de impresión y lo quiere volver a imprimir antes de que haya terminado el anterior.
Ahora bien cuando hago la misma operación con cualquier otro reporte, me funciona sin problemas. Cabe señalar que este que trato de exportar tiene un diseño un poco complicado, es una Factura, con Logo de la empresa incluido, etc, etc
Además el reporte que intento exportar a Word cuando lo muestro .Destination = crptToWindow o crptToPrinter todo funciona muy bien.

3) Estoy haciendo una alpicación en la cual necesito imprimir en un docuento Word los datos provenientes de una BD Access 97, todo más que sencillo, todo me funciona bien, a este docuento Word le cree una Correspondencia con la Base de Datos y todo está perfecto, inserto en el mismo los campos de los cuales deseo mostrar sus datos y todo funciona bien. Pero resulta que este documento lo llamo desde el Visual Basic y el origen de los datos es una tabla que genero en tiempo de corrida y a partir de varias consultas, o sea, que he tenido que correr una Macro de conexión a la base de datos para cojer el código que genera la misma e insertarlo en el código del programa mio, más cuando el camino de este programita así como de la fuente de datos no es fijo, es a elección del cliente, por supuesto que esta macro la eliminé del documento pues no me sirve para nada. Pero de todas maneras el problema no está en nada de lo que escrito, todo esto ha sido una intoducción, además cosa que usted conoce, el PROBLEMA GRAVE ESTÁ en que esta base en Access tiene PASSWORD y cuando esto sucede ya la cosa cambia, o sea, cuando tratas de crear la Macro y estás en el proceso de abrir el origen de datos en la creación de la correspondencia, esta te pide el password de la BD todo muy bien, pero cuando miras el código generado por dicha Macro, ese password no aparece por ningún lado y por ende cuando intentas abrir desde tu aplicación el documento Word, para este mostrar los datos insertados en el documento pues te pide EL PRECIADO PASSWORD. Está de más decirle lo que tuve que hacer, cosa que no me ha gustado ni un poquitico pues es un invento macabro, me he visto en la obligación de crear una base vacía, SIN PASSWORD, y que tenga vinculada la tabla de aquella, CON PASSWROD, para que entonces se pueda conectar el .DOC a esta BD sin problemas y mostrar los datos correspondientes.
Por favor cómo resolver este PROBLEMA de pasar la conexión del .DOC a la BD y que esta tenga algún Password ????
Cadena de Conexión:
=================
.OpenDataSource Name:= _
App.Path & "AplicarInstrumento.mdb", ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:= _
"", Revert:=False, Format:=wdOpenFormatAuto, Connection:="TABLE Tmp_AplicacionInstrumento_I", _
SQLStatement:="SELECT * FROM [Tmp_AplicacionInstrumento_I]", SQLStatement1:=""

4) Algo que tiene que ver con esto de la cadena de conexión de un .DOC a una BD y es que esta Aplicación la tengo instalada en una empresa donde hay varias PC y, así mismo, diferentes sistemas operativos, o sea, 98 con Office 97 y XP con Office 2k3, yo donde estoy desarrollando la aplicación tengo la primera de las variantes, así es que en las máquinas donde está configurado igual, en la empresa, no me da ningún tipo de problema; peroooooooo, cuando es Office 2003 ya la cosa explota, porque la cadena de conexión es otra, o sea, de esto me di cuenta porqie llevé los fuentes para aquella empresa y corrí por trazas el programa, hice una Macro para conectarme a la BD desde el Word y POR SUPUESTO que la cadena de conexión no fue la misma. Aqui le envio las dos cadenas para que las examine y, POR FAVOR, me sugiera que hacer para estos dos casos de Office que en un inicio pensé que el de 97 serviría para todos, o a lo mejor existe una forma común, e independientemente del Office, para hacer esto.

Cadena de Conexión Office 97:
.OpenDataSource Name:= _
App.Path & "AplicarInstrumento.mdb", ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:= _
"", Revert:=False, Format:=wdOpenFormatAuto, Connection:="TABLE Tmp_AplicacionInstrumento_I", _
SQLStatement:="SELECT * FROM [Tmp_AplicacionInstrumento_I]", SQLStatement1:=""

Cadena de Conexión Office 2k3:
.OpenDataSource Name:= _
App.Path & "AplicarInstrumento.mdb", ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & App.Path & "AplicarInstrumento.mdb;Mode=Read;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLED", SQLStatement:="SELECT * FROM `Tmp_AplicacionInstrumento_I` ", SQLStatement1:="",
SubType:=wdMergeSubTypeAccess

Bueno, disculpe tanta labia, está de más decirle que son cosas que necesito pero que usted no está en la obligación de responder, de hecho son preguntas extensas quizás fáciles o complicadas, pero bueno siempre que disponga del tiempo y el deseo pues bienvenido sea.

Saludos, y agradecido, Orlando