Mschart y mshflexgrid

Lo que quiero es casi lo mismo quiero pasar datos de un mshflexgrid de un formulario 1 a otro mshflexgrid de un formulario 2, pero que se pasen los datos de una fila completa a la la fila que yo le de doble click,
Ocea kiero q si le doy doble click a un articulo cualkiera me pase los datos de ese solo articulo, el codigo, nombre, descripcion, precio, y total. Me doy a entender =?
Y que cuando de click de nuevo claro esta,,, me ponga el otro articulo abajo del primero que pase para el otro MsHflexGrid.

1 respuesta

Respuesta
1
El siguiente código realizas lo que necesitas:
Private Sub MSFlexGrid1_DblClick()
    With MSFlexGrid1
        Form2.MSFlexGrid2.AddItem .TextMatrix(.RowSel, 1) & vbTab & .TextMatrix(.RowSel, 2) & vbTab & .TextMatrix(.RowSel, 3) & vbTab & .TextMatrix(.RowSel, 4) & vbTab & .TextMatrix(.RowSel, 5)
    End With
End Sub
El ejemplo anterior supone 2 MSFlexGrid [MSFlexGrid1 (ubicado en Form1) y MSFlexGrid2 (ubicado en Form2) ] con "FormatString" "*|Código|Nombre|Descripción|Precio|Total" y al hacer doble clic sobre MSFlexGrid1 se pasan los datos de la fila seleccionada al MSFlexGrid2.
Espero resuelvas la situación con esto, pero si tienes alguna otra duda puedes consultarme de nuevo.
Saludos desde México. Juan Pablo E.P.
Ok. Me funciona pero solo me pone la fila de una sola columna osea,, me pone solo la cantidad del articulo al que le doy click, no me salen los datos del articulo completo...
No entiendo, lo que pides se realiza como te lo acabo de poner en mi respuesta anterior, pero obviamente debes adaptar el código que escribo a tu programa, ya que yo desconozco ciertos detalles para darte una solución exacta. Hazlo correctamente y verás que tengo razón, he hecho lo que pides cientos de veces, estoy completamente seguro de lo que te respondí anteriormente.
El resultado que aquí me expones sería de un código como este:
Private Sub MSFlexGrid1_DblClick()
    With MSFlexGrid1
        Form2.MSFlexGrid2.AddItem .TextMatrix(.RowSel, 1)
    End With
End Sub
Es decir, omites todas las demás celdas.
Saludos desde México. Juan Pablo E.P.
Ok mira primero que nada te agradezco en el alma que te hayas tomado tu tiempo en responderme... la intención es lo que vale,,,
por si acaso te pongo aquí un link para que veas el ejemplo lo subí a rapidshare..
http://rapidshare.de/files/40580480/Ejemplo_MsHFlexGrid.rar.html
tiene una base de datso llamada BaseServicios y una tabla llamada TablaServicios son servicios brindados en una clinica dental. y tiene 4 campos llamados, (Codigo, Cantidad, Descripcion y Precio) y cuando hago doble click en el MsFlexGrid con el code q me enviaste solo me pasa los datos de una sola columna...
Perdón peo no se que estoy haciendo mal, y ademas no soy muy experto solo estoy aprendiendo,, gracias de todos modos. Te lo agradezco por que nadie me avia respondido con tanto interés...
Hice algunos cambios en tu código para poder adaptarlo a lo que necesitas:
1.- Utilicé MSFlexGrid en lugar de MSHFlexGrid
2.- Cambios de código en el Form1:
Private Sub Command1_Click()
    Set rs = cn.Execute("SELECT * FROM TablaServicios")
    LlenarTabla
End Sub
Private Sub Form_Load()
    Dim i As Integer
    On Error Resume Next
    Call Conectar
    Set rs = cn.Execute("SELECT * FROM TablaServicios")
    MSFlexGrid1.FormatString = "*|Codigo|Cantidad|Descripcion|Precio"
    LlenarTabla
End Sub
Private Sub MSFlexGrid1_DblClick()
    With MSFlexGrid1
        Form2.MSFlexGrid2.AddItem vbTab & .TextMatrix(.RowSel, 1) & vbTab & .TextMatrix(.RowSel, 2) & vbTab & .TextMatrix(.RowSel, 3) & vbTab & .TextMatrix(.RowSel, 4)
        Form2.Show
    End With
End Sub
Public Sub Text1_Change()
    Set rs = cn.Execute("SELECT * FROM TablaServicios WHERE Descripcion Like '%" & Text1.Text & "%'")
    LlenarTabla
End Sub
2a.- Hice un nuevo procedimiento para llenar de datos la tabla y no repetir código:
Private Sub LlenarTabla()
    If rs.RecordCount <> 0 Then
        With MSFlexGrid1
            .Rows = 1
            For i = 1 To rs.RecordCount
                MSFlexGrid1.AddItem vbTab & rs(0).Value & vbTab & rs(1).Value & vbTab & rs(2).Value & vbTab & rs(3).Value
                rs.MoveNext
            Next i
        End With
    End If
    Me.Caption = "Registros encontrados: " & CStr(rs.RecordCount)
End Sub
3.- Cambios de código en el Form2:
Private Sub Form_Load()
    On Error Resume Next
    Call Conectar
    With MSFlexGrid2
        .FormatString = "*|Codigo|Cantidad|Descripcion|Precio"
        .Rows = 1
    End With
End Sub
Todo lo demás sigue igual, si tienes alguna duda házmela saber y la resolveremos.
PD: El error que tenías [o mejor dicho "omisión"] es que en el MsFlexGrid2 sólo tenías 2 columnas, obviamente se pasaban los datos pero NO SE MOSTRABAN al no haber suficientes columnas.
Saludos desde México. Juan Pablo E.P.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas