Visual Basic - Crear recordset virtuel

Life is soft - evento anual de software empresarial
 
Vista:

Crear recordset virtuel

Publicado por Sergio (48 intervenciones) el 30/08/2006 15:35:59
Hola. Una pregunta por favor. Se puede crear un recorset virtual, sin utilizar tablas de ningun tipo, solo con valores que yo quiero ?

Si se puede, se puede pasar como parametro este recordset a crystal reports para imprimirlo ?

Alguien podria ayudarme ?

Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear recordset virtuel

Publicado por israel (25 intervenciones) el 30/08/2006 19:58:36
buenas:

Como virtual puedes currarte una base de datos desde cero programandola integramente desde Visual basic. Es decir crear la BD, crear una tabla,crear campos y crear registros. Una vez trabajada la tabla, borrar toda la BD (vamos una BD temporal). Esto es posible hacerlo tanto por DAO como ADO, como más te interese, eso si, la creacion de la BD (crear el archivo) yo solo lo consegui con DAO (aunque supongo que es posible hacerlo tambien con ADO). De todas maneras tambien, si quieres, puedes trabajar con los 2 metodos (una para hacer la BD y el resto con ADO).
En la ayuda de Visual Basic 6 sale muy bien explicado como hacer una tabla y como crear tablas y campos.

En relacion con el CrystalReports eso será otra matada, que si el rpt necesita tratar con varios tipos de recordset (que no tengan un mismo patron de volcado)...
Quiza lo mas sencillo (tambien dependiendo de los datos que necesites volcar), puedes crear un campo formula (de aquellos datos que se le suelen pasan desde visual) que ocupe toda la hoja y desde visual vuelques los datos.

Espero que te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear recordset virtuel

Publicado por Sergio (48 intervenciones) el 31/08/2006 14:26:59
Gracias por tu ayuda !!!

Una cosa que no entiendo con respecto a crystal, por favor. Supongamos que envio los datos desde visual al rpt. En el rpt creo las formulas que recibiran los datos enviados desde VB.
Los datos que enviaria de VB son indeterminados en cuanto a la cantidad. Como podria hacer para que en Crystal se imprima cada dato enviado por VB en una linea diferente ?

Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear recordset virtuel

Publicado por Israel (25 intervenciones) el 03/09/2006 19:14:58
buenas:
En el caso que te comentaba de crear un unico campo formula dentro de Crytal, es tan sencillo como enviar una cosa parecida a esto:

dim cadena_a_volcar as string

while not rs.eof
cadena=cadena & chr(13) & rs.fields("campo1")
wend

una vez hecho esto tienes la variable cadena_a_volcar que no tienes mas que enviarla al cristal, es decir a su campo formula que ocupaba gran parte de la pagina.
No se si erá si el envio de datos a un campo formula (hace tiempo que no uso crystal):
cr.formulas("mi_formula")=cadena_a_volcar

Quiza esta manera no sea la mas pero si la mas sencilla (creo yo) para un volcado de datos en un documento todo terreno de crystal.

Ademas de esta manera puedes incluso distribuirtelo como mas te guste, incluso ponerle titulillos, descripciones, etc, segun el dato.

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear recordset virtuel

Publicado por israel (25 intervenciones) el 05/09/2006 18:07:00
perdona, asi:

while not rs.eof
cadena=cadena & chr(13) & rs.fields("campo1")
rs.movenext
wend
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear recordset virtuel

Publicado por Daniel (1 intervención) el 01/09/2006 20:51:03
dim RS as adodb.recordset
set rs=new adodb.recordset
rs.cursorlocation=aduserclient
with rs
.fields.append "NombreFila1",Tipodato
.fields.append "NombreFila2",Tipodato
....
.fields.append "NombreFilan",Tipodato
open ,adopenstatic
end with
with rs
.addnew
!NombreFila1=Valorquequieras
....
.uptate
end with
despues le das a tu rpt el origen de dato de tu recordset
espero haber entendido tu pregunta saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar