Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas a la hora de selccionar registros en un MSHFlexGrid

Estas en el tema de Problemas a la hora de selccionar registros en un MSHFlexGrid en el foro de Visual Basic clásico en Foros del Web. Saludos. Tengo un MSHFlexGrid asociado a un recordset de ADO. El caso es que cuando cargo mi programa y relleno el flex, se vuelve loco ...
  #1 (permalink)  
Antiguo 09/10/2006, 09:13
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Problemas a la hora de selccionar registros en un MSHFlexGrid

Saludos.

Tengo un MSHFlexGrid asociado a un recordset de ADO.

El caso es que cuando cargo mi programa y relleno el flex, se vuelve loco a la hora de seleccionar los registros.

No se queda marcada ni las filas ni las columnas, y a veces le da por seleccionar todo el flex.

Eso es a su libre albedrio.

Alguna solucion? Gracias.

Edito para aclarar un poco las cosas.

Ese flex, se debe actualizar segun un criterio relacionado con un datagrid que hay un poco mas arriba del formulario. Es decir si en el datagrid hay codigo=1, el flex debe mostrar todos los registros del codigo 1, etc.

Pues si cuando carga el flex por primera vez, hay datos, funciona mas o menos bien, si selecciono el criterio, codigo=2 y hay datos, el flex sigue funcionando, pero si cuando voy al registro codigo=3, no hay datos, el flex ya se vuelve loco y hace lo que ya os he comentado.

Para actualizar el flex tengo un proceso que lo que hace es actualizar el datasource del flex mediante un objeto recordset.

Última edición por bubu54; 09/10/2006 a las 09:31
  #2 (permalink)  
Antiguo 10/10/2006, 07:14
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
podrias indicarnos el codigo de actualizacion para ver cual podria ser el inconveniente.
  #3 (permalink)  
Antiguo 10/10/2006, 09:47
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Pues basicamente es cargar un recordset y despues asignar el DataSource del flex al recordset, algo asi:

Código:
Dim rs As New ADODB.Recordset
    sql="select * from tabla where criterio='" & criterio & "'"
    Set rs = cn.Execute(sql)
    Set flex.DataSource = rs
Ya se que no he puesto codigo para abrir la conexion, pero ya viene abierta.

Por las pruebas que voy haciendo, se flipa cuando el recordset le llega vacio.
  #4 (permalink)  
Antiguo 10/10/2006, 09:58
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
es muy raro la verdad nunca eh trabajado con el mshfledgrid por que prefiero las grillas que cargo yo :P es un poco mas lento pero asi estoy seguro, pero veamos tu caso, existe la posibilidad que puedas comprobar arriba si hay registros y si no dejes el datasourse en blanco o tal ves escondas la grilla?

Dim rs As New ADODB.Recordset
sql="select * from tabla where criterio='" & criterio & "'"
Set rs = cn.Execute(sql)
if rs.eof then
set flex.datasourse = ''
flex.visible=false
flex.refresh
else
Set flex.DataSource = rs
endif

con algo asi como eso
  #5 (permalink)  
Antiguo 10/10/2006, 14:30
 
Fecha de Ingreso: diciembre-2004
Mensajes: 129
Antigüedad: 19 años, 4 meses
Puntos: 0
.

mira en las propiedades del msh, la forma en que seleccionas con el mouse, por columna, por fila, libre, etc.
  #6 (permalink)  
Antiguo 13/10/2006, 03:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: Corrientes, Arg.
Mensajes: 129
Antigüedad: 19 años, 5 meses
Puntos: 0
Problemas con las MSHFlexGrid

Yo usaba las MSH en mis programas, pero en ocasiones tenían un comportamiento a todas luces erróneo.
Estoy estrenando conexión a Internet y todavía no tengo bien organizadas las cosas. Pero si te interesa te puedo pasar dos mini-programas que hice para demostrar este comportamiento erróneo.
Lo cierto es que he dejado de usar las MSHFlexGrid en beneficio de las (más antiguas según MS) MSFlexGrid, que funcionan correctamente en los ejemplos que te menciono.
Saludos
  #7 (permalink)  
Antiguo 13/10/2006, 03:52
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Ya, pero necesito que funcionen con ADO, por eso el MSHFlexgrid.

De momento lo que he hecho es flex.clear, y salgo del paso, pero me borra las cabeceras de las columnas.
  #8 (permalink)  
Antiguo 13/10/2006, 08:22
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
hace algo. quitalo de la conexión, ado y rellenalo normalmente, y ese problema se quita.. se que no es la mejor solución pero así es como lo he logrado quitar.

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:49.