• Domingo 22 de Diciembre de 2024, 13:37

Autor Tema:  Re: data environment  (Leído 1889 veces)

clinforsat

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: data environment
« en: Martes 29 de Abril de 2003, 12:33 »
0
hola estoy haciendo informes en vb6 y no se como puedo cambiar la consulta SQL de un data enviroment por ciertos datos que tengo en la aplicacion en variables publicas. es decir dependiendo del codigo poder hacer que la consulta varie.

GRACIAS

angelescj

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: data environment
« Respuesta #1 en: Martes 29 de Abril de 2003, 12:59 »
0
La forma de cambiar la consulta SQL es:
DataEnvironment1.comandoACambiar.Recordsource="nueva consulta SQL"
El problema es que una vez leído el conjunto de registros ya no lo vuelve a leer a no ser que se cierre previamente.
Una forma cómoda de hacerlo es:

DataEnvironment1.Commands(indiceDel ComandoACambiar).Recordsource="nueva consulta SQL"

datareport1.show vbModal

DataEnvironment1.Recordsets(indiceDel ComandoACambiar).close.

Otra forma es preguntar antes de asignar la nueva cláusula si ya está abierto.
Espero que te sirva

:good:

clinforsat

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: data environment
« Respuesta #2 en: Martes 29 de Abril de 2003, 13:10 »
0
GRACIAS DE ANTEMANO, el problema principal lo tengo a la hora de incluir en la secuencia SQL los valores de las variables, yo ya habia probado esto antes y le coloco las variables en la consulta pero no me las admite

angelescj

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: data environment
« Respuesta #3 en: Martes 29 de Abril de 2003, 14:12 »
0
Construye la cadena primero:
EJ:

dim cad as string
cad="select * from tabla where campo1=" & txtprimervalor  & " and campo2='" & txtotroValorEsteDeTipoCadena & "'"
dataenvironment1.commands(indice).recordsource=cad

Podría ser así.

:good:

roy

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
data environment
« Respuesta #4 en: Viernes 2 de Mayo de 2003, 19:57 »
0
mira yo trabajo con mis dataenviroment's de la sig manera, primero hago la consulta, que debe coincidir con los campos que declaraste en tu dataenviroment y despues la filtro como se me antoja

* Aqui preparo mi consulta, que la filtro de acuerdo a un usuario

imprimir="select * from apoyo where usuario='" & clv_usua & "' Order by Orden"

*Despues compruebo que mi recordset no este abierto, si esta lo cerrare, recuerda que por cada comando de impresion que generas en tu dataenvironment, hay un recordset, en esta caso mi comando de impresion se llama CmdCorte y existe un recorset que tiene el mismo nombre mas al inicio la palabra rs

If DataEnvironment1.rsCmdCorte.State Then DataEnvironment1.rsCmdCorte.Close

*Despues lo abro con la consulta de esta forma
           DataEnvironment1.rsCmdCorte.Open Source:=imprimir

*Y por ultimo compruebo si el recorset tiene registros, para imprimir el reporte, si no mandar cualquier mensaje

If DataEnvironment1.rsCmdCorte.RecordCount Then
repCierreCaja.Show 1
else
  msgbox "No hay información para Imprimir"
endif

bueno asi trabajo yo con mis dataenviroment's espero te sirva:comp: