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

Dudas con Data grid

Estas en el tema de Dudas con Data grid en el foro de Visual Basic clásico en Foros del Web. Hola a Todos Solo queria saber si en el data grid se puede ingresar directamente datos(como una matriz donde se ingresa directamente valores en las ...
  #1 (permalink)  
Antiguo 22/09/2008, 10:10
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Dudas con Data grid

Hola a Todos

Solo queria saber si en el data grid se puede ingresar directamente datos(como una matriz donde se ingresa directamente valores en las columnas) sin que el data grid estee conectado a un control .

Si no se puede ingresar directamente datos en el datagrid , ¿que control del visual basic 6.0 me permite ingresar datos directamete en ella ?

Gracias a todos.
  #2 (permalink)  
Antiguo 22/09/2008, 10:58
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Dudas con Data grid

Cita:
Iniciado por pabje Ver Mensaje
Hola a Todos

Solo queria saber si en el data grid se puede ingresar directamente datos(como una matriz donde se ingresa directamente valores en las columnas) sin que el data grid estee conectado a un control .

Si no se puede ingresar directamente datos en el datagrid , ¿que control del visual basic 6.0 me permite ingresar datos directamete en ella ?

Gracias a todos.
Bueno, con el control DataGrid no puedes hacer eso, pues siempre debe estar enlazado a un control data o recordset. Si lo enlazas a un recordset desconectado, que se puede, no podrás escribir nada en él.

Lo que quieres se podría hacer con un control MSFlexGrid o MSHFlexGrid controlando en sus eventos KeyPress y KeyDown las teclas pulsadas.

  #3 (permalink)  
Antiguo 22/09/2008, 19:17
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Dudas con Data grid

Hola nuevamente

Gracias Avellaneda por la respueta.

Ahora mire por ahi que hay un control llamado datagridview. Lo que no se si visual basic 6.0 lo tiene.

Si en visual basic 6.0 lo puedo usar, te pregunto:

¿El datagridview me permite ingresar datos directamente en él sin que estee enlazado a un recordset.?
  #4 (permalink)  
Antiguo 23/09/2008, 00:52
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Dudas con Data grid

Hola,

El DataGridView es un componente de .NET y no se puede usar en VB6.

  #5 (permalink)  
Antiguo 23/09/2008, 09:20
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Dudas con Data grid

Hola Avellaneda

Con algunos de estos controles MSFlexGrid o MSHFlexGrid ¿ yo puedo crear una matriz dinamica de ingresos de datos?

En otras palabras una matriz que permita variar(incrementar) el numero de filas a medidia que yo ingreso los datos, ya que los datos que ingresos en esta matriz son variables y no fijos.
  #6 (permalink)  
Antiguo 23/09/2008, 09:41
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Dudas con Data grid

Cita:
Iniciado por pabje Ver Mensaje
Hola Avellaneda

Con algunos de estos controles MSFlexGrid o MSHFlexGrid ¿ yo puedo crear una matriz dinamica de ingresos de datos?

En otras palabras una matriz que permita variar(incrementar) el numero de filas a medidia que yo ingreso los datos, ya que los datos que ingresos en esta matriz son variables y no fijos.
Hola pabje,

Claro que se puede, controlando como te dije los eventos KeyPress y KeyDown del Grid.

Te pongo un ejemplo que creo que ya he expuesto alguna vez aquí:

Código:
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
With MSFlexGrid1
    Select Case KeyAscii
    Case 32 To 127
        ' solo se admiten caracteres imprimibles
        .Text = .Text & Chr(KeyAscii)
    End Select
End With
End Sub

Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
With MSFlexGrid1
    Select Case KeyCode
    Case vbKeyDelete    ' Tecla [Supr] borramos toda la celda
        .Text = ""
    Case vbKeyBack      ' Tecla [Retroceso] borramos el último caracter
        If Len(.Text) > 0 Then
            .Text = Left(.Text, Len(.Text) - 1)
        End If
    Case vbKeyTab, vbKeyReturn   ' Teclas [Tab] o [Enter]
        If .Col = .Cols - 1 Then
            ' si es la última columna pasamos al principio de la siguiente fila
            If .Row = .Rows - 1 Then
                ' es la última fila añadimos una nueva
                .Rows = .Rows + 1
                .TopRow = .Row
            End If
            .Row = .Row + 1
            .Col = 0
            .LeftCol = 1
            ' si no está visible
            If .Row < .Rows - 1 Then
                If .RowIsVisible(.Row + 1) = False Then .TopRow = .Row
            End If
        Else
            .Col = .Col + 1
        End If
    End Select
End With
End Sub
Como podrás comprobar, combinando los caracteres pulsados, puedes hacer casi de todo.

Después con otros eventos como EnterCell y LeaveCell puedes hacer mas vistosas la entrada de datos.

  #7 (permalink)  
Antiguo 24/09/2008, 08:57
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Dudas con Data grid

HOLA Avellaneda

He probado la matriz dinamica con los controles que me diste MSFlexGrid o MSHFlexGrid Y me anduvo muy bien.

Queria preguntarte lo siguiente:

Cita:
1-) ¿Como borrar una fila de la matriz dinamica. ya sea la ultima o una del medio?
2-) ¿Como escribir en el codigo una tecla combinada? Por ejemplo para borrar
una fila, el usuario presione junto Shift con Supr.

En la primera pregunta , borrar la ultima fila , tal vez no se tan dificil, solo pregunto si es la ultima fila y resto 1 a la propieda rows del control.
Pero borrar una del medio, puede ser mas dificil, tal vez tenga simular que borro la del medio, haciendo un desplazamiento del contenido de las filas(con datos) y borrando realmente la ultima fila, ya que solo cuento con la propiedad Rows.

Gracias Nuevemente Avellaneda.
  #8 (permalink)  
Antiguo 24/09/2008, 09:57
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Dudas con Data grid

Cita:
Iniciado por pabje Ver Mensaje
HOLA Avellaneda

He probado la matriz dinamica con los controles que me diste MSFlexGrid o MSHFlexGrid Y me anduvo muy bien.

Queria preguntarte lo siguiente:


En la primera pregunta , borrar la ultima fila , tal vez no se tan dificil, solo pregunto si es la ultima fila y resto 1 a la propieda rows del control.
Pero borrar una del medio, puede ser mas dificil, tal vez tenga simular que borro la del medio, haciendo un desplazamiento del contenido de las filas(con datos) y borrando realmente la ultima fila, ya que solo cuento con la propiedad Rows.

Gracias Nuevemente Avellaneda.
Hola pabje,

no hay mayor problema, el control MSFlexgrid tiene la propiedad RemoveItem para eliminar filas del grid

Código:
Private Sub cmdEliminarFila_Click()
Dim i As Integer
With MSFlexGrid1
    i = .Row
    If .Row = .Rows - 1 Then
        .Col = 0
        If .TextMatrix(.Row, .Col) = "" Then
            ' última fila y en blanco, borramos sin preguntar
            .RemoveItem i
            Exit Sub
        End If
    End If
    If MsgBox("¿Seguro que quieres eliminar esta fila?", vbYesNo + vbDefaultButton2 + vbQuestion, "Atención") = vbYes Then
        .RemoveItem i
        .Col = 0
        .Row = 1
    End If
End With
End Sub
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 07:23.