• Lunes 18 de Noviembre de 2024, 00:36

Autor Tema:  Recuperar El Nombre Del Campo  (Leído 2992 veces)

pmike

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
    • http://www.autoresponder.com
Recuperar El Nombre Del Campo
« en: Miércoles 8 de Marzo de 2006, 22:39 »
0
Hola amigos.
Intento recuperar el nombre del campo de un dato en concreto de un DataGrid cuando se clica sobre el.

tengo el siguiente procedimiento pero solo me da el numero de la columna y registro (row y col)

Private Sub DataGridE_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

' Imprime el texto, fila y columna de la celda que pulsó el usuario.
 Debug.Print DataGridE.Text; DataGridE.Row; DataGridE.Col

End Sub

Simplemente deseo recuperar el nombre del campo por ejemplo

hago clik en miguel para que me devuelva nombre.

Gracias
-------------------------------------------------------------

http://www.ebookred.com

-------------------------------------------------------------

pmike

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
    • http://www.autoresponder.com
Re: Recuperar El Nombre Del Campo
« Respuesta #1 en: Jueves 9 de Marzo de 2006, 20:32 »
0
Ya esta encontre la solucion, no era dificil.

Para recuperar el nombre de los atributos de una tabla en una bd.
Una vez producida la conexion con la bd definimos un tipo de field llamado 'campo'
y tambien un recordset para recorrer la bd q es 'rsConulTodo'
y luego devolvemos los atributos(name) y el valor de los mismos(Value) a un simple List mediante un bucle

campo As ADODB.Field


For Each campo In rsConsulTodo.Fields

        List1.AddItem " " & campo.Name & ""
        List2.AddItem "" & campo.Value & ""

Next campo

gege nada dificil

nos vemos
-------------------------------------------------------------

http://www.ebookred.com

-------------------------------------------------------------

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Recuperar El Nombre Del Campo
« Respuesta #2 en: Jueves 9 de Marzo de 2006, 22:14 »
0
En el evento Click del DataGrid puedes colocarlo más facil todavia.

List1.AddItem DataGrid1.Text

Ojala te sirva.
Chao
El pasado son solo recuerdos, el futuro son solo sueños

pmike

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
    • http://www.autoresponder.com
Re: Recuperar El Nombre Del Campo
« Respuesta #3 en: Viernes 10 de Marzo de 2006, 11:21 »
0
Veras RadicalEd.

Lo q consigues con

List1.AddItem DataGrid1.Text

es devolver de la bd el contenido de la informacion a un atributo dado
pero no el nombre de dicho atributo

No es lo mismo devolver
edad ->nombre del atributo de la bd
22 -> valor del atributo

salud
-------------------------------------------------------------

http://www.ebookred.com

-------------------------------------------------------------

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
Re: Recuperar El Nombre Del Campo
« Respuesta #4 en: Viernes 10 de Marzo de 2006, 13:56 »
0
Estas funciones te entregan informacion de tu consulta a una tabla

** Cantidad de registros recuperados

CantReg = control.RECORDCOUNT - 1

** Cantidad de Columnas

CantCols = control.FIELDS.COUNT - 1


** Nombre de los campos

for i = 0 to CantCols
    NombreCampo = control.FIELDS( i ).NAME
next i

** Valor de los campos
for i = 0 to CantCols
    ValorCampo = control.FIELDS( i ).value
next i

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Recuperar El Nombre Del Campo
« Respuesta #5 en: Viernes 10 de Marzo de 2006, 18:07 »
0
Supongo que lo que deseas es devolver el nombre de la columna. Hace un buen rato que no trabajo con el datagrid pero creo que puedes obtener ese valor capturando el valor de la columna y asignando 0 al valor de la fila. Algo así:

Código: Text
  1.  
  2. Private Sub Datagrid1_Click()
  3.    Dim ColActual as Integer
  4.    Dim NombreCampo as String
  5.    '
  6.    'Capturas
  7.    ColActual=Datagrid1.Col
  8.    '
  9.    'Estableces la celda activa
  10.    Datagrid1.Col=ColActual
  11.    DataGrid1.Row=0
  12.    '
  13.    NombreCampo=DataGrid1.Text
  14. End
  15.  
  16.  

Mummmm... escribiendo el código me doy cuenta que no necesitas capturar la columna actual (pues esta no cambiará) lo único que necesitas es establecer la propiedad row a 0 (cero) para ubicarte en la primera fila (que asumo es fija y contiene los nombres de los campos).

Espero que sea lo que buscas.

Saludos.


DiabloRojo

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Recuperar El Nombre Del Campo
« Respuesta #6 en: Viernes 10 de Marzo de 2006, 19:53 »
0
Hola pmike. Pues me quedé con la duda después de enviar el post anterior y me puse a revisar en el VB. Lamentablemente no es la respuesta correcta o al menos en mi compu no funciona (últimamente he tenido problemas con ella). Dando y dando llegué a esto:

Código: Text
  1.  
  2. Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  3.    On Error Resume Next
  4.    'Muestra el contenido de la cabecera de la columna
  5.    Text1.Text = Adodc1.Recordset.Fields(DataGrid1.ColContaining(X)).Name
  6.    'Establece la celda activa del grid
  7.    DataGrid1.Col = DataGrid1.ColContaining(X)
  8.    DataGrid1.Row = DataGrid1.RowContaining(Y)
  9.    'Muestra el contenido de la celda activa
  10.    Text2.Text = DataGrid1.Text
  11. End Sub
  12.  
  13.  

Creé un pequeño proyecto que consta de 2 textbox, 1 datagrid y 1 adodc. El On Error Resume Next es por si el usuario hace click en los encabezados de columna. Ahora sí, espero que sea lo que andas buscando.

Saludos


DiabloRojo.