• Viernes 17 de Mayo de 2024, 05:27

Autor Tema:  Datagrid  (Leído 1533 veces)

Shiquilla

  • Miembro MUY activo
  • ***
  • Mensajes: 188
  • Nacionalidad: es
    • Ver Perfil
    • http://www.songesoft.com
Datagrid
« en: Jueves 18 de Marzo de 2004, 01:11 »
0
EL problema que tengo es el siguiente:

Tengo un DataGrid que recoge una serie de resgistros de un recordset de esta forma:

Código: Text
  1. Private Sub LlenarLista()
  2.     Dim Cmd_Lista As New ADODB.Command
  3.     Dim rs_Llenar_Listas As New ADODB.Recordset
  4.     rs_Llenar_Listas.CursorLocation = adUseClient
  5.     Set Cmd_Lista.ActiveConnection = cn
  6.     Cmd_Lista.CommandText = "SELECT Entrada,Tipo_Movimiento,Fecha,Concepto,Importe FROM Movimien WHERE Entrada = ? ORDER BY Tipo_Movimiento,Fecha"
  7.     Cmd_Lista.CommandType = adCmdText
  8.     Set prm = Cmd_Lista.CreateParameter("Entrada", adInteger, adParamInput, 9, CInt(Num_Entrada))
  9.     Cmd_Lista.Parameters.Append prm
  10.     rs_Llenar_Listas.Open Cmd_Lista
  11.     If Not rs_Llenar_Listas.EOF Then
  12.         Set DataGrid.DataSource = rs_Llenar_Listas
  13.         DataGrid.Refresh
  14.         CrearFormatoDataGrid
  15.     End If
  16.     Set rs_Llenar_Listas = Nothing
  17.     Set Cmd_Lista = Nothing
  18. End Sub
  19.  
Bien, ahora quiero que cuando se pinche en algún registro, pueda saber los datos de ese registro... no sé si me explico bien. Digamos que ésta lista tiene 5 campos y tiene 4 filas, si pincha en la fila número tres, saber qué datos tiene esa fila y sacar un formulario con esos datos. Gracias
« §hÿqµïllæ »

paco_239

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Datagrid
« Respuesta #1 en: Jueves 18 de Marzo de 2004, 06:41 »
0
Uhmm creo que si entendi tu pregunte, prueba con esto a ver si te sirve.
Es en el evento del MouseDown de  tu datagrid...

Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Fila As Long
Dim Columna As Long
Fila = DataGrid1.RowContaining(Y)
Columna = DataGrid1.ColContaining(X)
MsgBox DataGrid1.Columns.Item(Columna).CellText(DataGrid1.GetBookmark(Fila))
End Sub



Saludos!!!

aura

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Datagrid
« Respuesta #2 en: Jueves 18 de Marzo de 2004, 12:08 »
0
Hola a todos, yo utilizo el evento dblclick del datagrid, la posicion del grid en la que se encuentra el usuario la puedas sacar con
Código: Text
  1. columna= datagrid1.col
  2. fila=datagrid1.row
  3.  
Si utilizas el evento MouseDown, MouseUp o el Click, te da la posicion que esta antes de cambiar de posicion, ademas si utilizas el dblclick, no limitas al usuario a que cada vez que toque con el raton el grid, aparezca un formulario, si no que cuando realmente quiera que aparezca el formulario que pulse doble click, asi con el click le permites trabajar con el grid.

Espero no ser demasiado extenso y que te sean de ayuda, en todo caso solo son consejos y las decisiones finales solo las toma el programador...

Shiquilla

  • Miembro MUY activo
  • ***
  • Mensajes: 188
  • Nacionalidad: es
    • Ver Perfil
    • http://www.songesoft.com
Re: Datagrid
« Respuesta #3 en: Jueves 18 de Marzo de 2004, 13:22 »
0
Muchas gracias a los dos por contestar, esos eventos ya los conocía, el problema que tengo es que si pincha en la fila número 3 y cada fila tiene 5 registros, cómo recorrer todos los campos de esa fila... no sé si me estoy explicando bien.

Gracias de antemano  :hola:
« §hÿqµïllæ »

EL Loco

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Datagrid
« Respuesta #4 en: Martes 30 de Marzo de 2004, 20:03 »
0
ok a ver si entendi el tema es el siguiente

ej

Nombre | Apellido | Telefono | Movil | Fax
-------------------------------------------------
El          | Loco      | No lo se | 1111  |1122
-------------------------------------------------

vos queres q cuando te pinchen en el nombre obtener los datos del resto de la fila

1) solucion seria crear una matriz de 5 por ej ya q son 5 los campos
y cargarlas con 1 for por ej
e ir avanzando columna a columna

el tema es q el datagrid es bastante jodido para algunas cosas
pero pienso q la opcion de arriba es bastante valida como otras q ya te dieron

no se me ocurre otra cosa
 :devil:
El LOcO

Analista Programador
VB 6.0
Clipper
Pascal
SQL Server 2000

A las Ordenes