Visual Basic - acceder a una fila en un datagrid

Life is soft - evento anual de software empresarial
 
Vista:

acceder a una fila en un datagrid

Publicado por Ione (5 intervenciones) el 07/11/2005 11:02:42
hola,
tengo un problema con los datagrid.
para acceder a una fila de un datagrid utilizo DataGrid.row="x", pero esto funciona cuando la fila a la que quiero acceder aparece en la pantalla. es decir, el datagrid puede tener 100 filas pero en la pantalla aparecen 10 con el scrollbar. asi q si la fila a la que quiero acceder esta entre esa 10 primeras no tengo ningun problema, pero si si es mayor que esa.

un amigo del foro: ivan, me dijo que utilizara el metodo find del recordest, pero no he conseguido solucionar el problemilla.

aver si alguien me puede ayudar.
gracias. Ione
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:acceder a una fila en un datagrid

Publicado por ivan (463 intervenciones) el 07/11/2005 18:11:23
Te voy a poner parte del codigo que yo uso para hacer eso que dices...

Déjame y lo busco
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:acceder a una fila en un datagrid

Publicado por ivan (463 intervenciones) el 07/11/2005 18:49:13
Yo tengo en un DataGrid la tabla CLIENTES, en donde tengo mas registros que los que me pudiera mostrar en pantalla.

Yo trabajo mis bases dedatos en Access 2003 y en Visual Basic 6.0

Para abrir el datagrid uso esto...:

Set Clientes = New ADODB.RecordSet
Clientes.Open "select * from clientes", Bases, adOpenKeyset, adLockOptimistic
Set DataGrid1.DataSource = Clientes

BASES es una conexion ADODB.Connection

Este código lo uso para buscar el nombre de un cliente, en Text1 pongo el texto que quiero buscar, lo primero que hago es ubicarme al principio en el RecordSet donde leo los nombres y luego procedo a buscarlo, si no lo encuentra pongo un mensaje de que no se encontró, claro que el puntero quedará hasta el ultimo registro; en caso de que lo encuentre simplemente pongo un SETFOCUS al datragrid, al hacer esto el cursor pasa al Datagrid ubicándose en el registro que encontró con FIND, recorriendo todos los registros anteriores, en el primer renglon del datagrid se pocisiona el nombre buscado.... aunque sea el registro 200 , 300, etc... o sea no importa cual registro sea cuando hago esto se posiciona donde lo encontró y lo muestra como el primero, si doy clic en las barras scroll notaré que hay más registros arriba del que me mostró...

Clientes.MoveFirst
DataGrid1.Col = 0
busq = "nombre like '" & Text1.Text & "*'"
Err.Clear
Clientes.Find busq
If Err.Number Or Clientes.BOF Or Clientes.EOF Then
'no se encontró
Mensaje = "El Nombre no se encontró"
ide = MsgBox(Mensaje, vbInformation, "Aviso")
Clientes.MoveFirst
Exit Sub
Else
' si se encontró
DataGrid1.SetFocus
End If

Espero esto te sea de utilidad, 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