Visual Basic - Datagrid HighLigth (VB6)

Life is soft - evento anual de software empresarial
 
Vista:

Datagrid HighLigth (VB6)

Publicado por PitBTons (1 intervención) el 09/07/2010 13:29:06
Hola a Todos, No sé si alguien me podrá ayudar...

Estoy haciendo un programa con un datagrid y pretendo resaltar una de las filas cuando el valor de una columna coincida con un dato previo, he creado la función Buscar que la llamo varias veces, por un lado la llamo al modificar el filtro del RecordSet y todo funciona correctamente, y por el otro (lo que no funciona) la llamo desde el evento Activate del form, en este caso sí me indica la fila con el puntero de Recordset (el triangulito en la columna Derecha del Data grid) pero no me la muestra resaltada.

El caso es que si paro la depuración dentro de esta función y miro el form si aparece resaltado pero si quito el break deja de estarlo.
Creo que tiene que ver con la forma de dibujar el form o con los eventos del datagrid pero algo se me pasa, he hecho un montón de pruebas y no doy con ello.

Alguien puede ayudarme??
Gracias de Antemano
Un Saludo,
Pit

P.D. Este es el código de la función que uso. Funciona correctamente si el form está activo, pero no funciona la primera vez que lo cargas

Private Sub Buscar()
Dim rsDat As ADODB.Recordset

Set rsDat = Me.DataGrid1.DataSource
Me.Label1.Caption = rsDat.RecordCount & " Repuestos Encontrados en el Almacén"
If (Me.DataGrid1.SelBookmarks.Count <> 0) Then
Me.DataGrid1.SelBookmarks.Remove 0
End If
If Datos.Material <> "**********" Then
rsDat.MoveFirst
Do While Not rsDat.EOF
If rsDat.Fields("CodSAP").Value = Datos.Material Then
Me.DataGrid1.SelBookmarks.Add rsDat.Bookmark
Exit Do
End If
rsDat.MoveNext
Loop
Else
rsDat.MoveLast
If Not rsDat.EOF Then rsDat.MoveNext
End If

Me.DataGrid1.Columns(0).Width = 1000
Me.DataGrid1.Columns(1).Width = 1000
If Me.DataGrid1.Columns.Count > 2 Then
Me.DataGrid1.Columns(2).Width = 1000
Me.DataGrid1.Columns(3).Width = 1000
Me.DataGrid1.Columns(4).Width = 1000
Me.DataGrid1.Columns(5).Width = 6300
End If
Set rsDat = Nothing
End Sub
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