MSFlexGrid de Visual Basic

Hola a todos (y todas)

¿Alguien podría explicarme cómo funciona un Flexgrid? Sé que puedo hacer cosas con las propiedades Row, Col y Text, pero no sé cómo utilizarlas y no conozco la sintaxis.
Me gustaría dar títulos a mis columnas y alimentar cada fila de la cuadrícula con registros de una tabla (con recordset).
Si alguien pudiera darme algunos trucos, se lo agradecería. Estoy trabajando en VB6.
Gracias.

5 respuestas

  1. Hola a todos

    tengo un MSFlexGrid lleno de resultados de búsqueda de una base de datos, ¿hay alguien que me pueda decir el método para calcular el número de resultados que se muestran en el MSFlexGrid?

    gracias a todos
    1. MSFlexGrid.Rows calcula el número de filas
      si quieres calcular la suma de los datos de la primera columna de tu MSFlexGrid
      for i=1 to MSFlexGrid.Rows-1
      cel=MSFlexGrid.matrix(i,0)
      s=s+cel
      next

      entonces s contiene la suma.
  2. en lo que a mí respecta, procedo de la siguiente manera
    supongamos que tengo una tabla de 05 columnas y 04 filas
    los títulos de las columnas deben contener los siguientes valores
    Matemáticas, física, ciencias, química
    para llenar la primera fila a partir de la segunda celda
    .col=1
    .row=0
    .colsel=4
    .row=0
    .clip="Matemáticas" & vbtab & "física" & vbtab & "ciencias" & vbtab & "química"
    para llenar los títulos de la primera columna
    .col=0
    .row=1
    .col=0
    .row=3
    .clip="mohamed" & vbcr & "magali" & vbcr & "ludi"
    1. Hola, me gustaría recibir ayuda con mi msflexgrid. Quiero que después de ingresar en una celda y presionar enter, el puntero se coloque automáticamente en la siguiente fila.
      1. Hola,

        tengo un MSFlexGrid y lo lleno con un ListBox donde asigno mis datos
        tengo un problema, quiero saber si es posible registrar los elementos de un MSFlexGrid en una base de datos con el evento de un botón, por ejemplo. Ya he intentado, pero no funciona. No sé si es posible o no ????
        Gracias
        1. Hola klowlead,

          Quizás esta sea una primera aproximación a tu pregunta:
          en la forma en que has colocado tu MsFlexGrid, con un clic derecho sobre ella, define en las propiedades: el número de filas y el número de columnas. Coloca 1 en la zona "Fixed row".
          Esta fila fija te servirá más tarde para indicar los encabezados de columna. Para alimentar tus encabezados:

          .MaGrid.Clear
          .MaGrid.Rows = 1
          .MaGrid.Row = .GridAgents.Rows - 1
          MaGrid.Col = 0: MaGrid.ColWidth(0) = 2000: MaGrid = "Nombre"
          MaGrid.Col = 1: MaGrid.ColWidth(1) = 2000: MaGrid= "Apellido"
          MaGrid.Col = 2: MaGrid.ColWidth(2) = 900: MaGrid = "Fecha nac."
          MaGrid.Col = 3: MaGrid.ColWidth(3) = 1000: MaGrid = "Empleador"
          MaGrid.Col = 4: MaGrid.ColWidth(4) = 1100: MaGrid = "Num. médico"
          MaGrid.Col = 5: MaGrid.ColWidth(5) = 3000: MaGrid= "Localidad"

          .......

          Luego creas tu orden SQL que te permite buscar las zonas que necesitas para mostrar en tu grid.

          If Not EOF Then

          Do Until EOF
          .MaGrid.Rows = .MaGrid.Rows + 1
          .MaGrid.Row = .MaGrid.Rows - 1
          MaGrid.Col = 0: MaForme.MaGrid = zona archivo (proveniente de SQL)
          MaGrid.Col = 1: MaForme.MaGrid = zona archivo

          ......

          MoveNext
          Loop
          End If

          Ahí tienes, intenta primero con estas pequeñas notas (que espero sean lo suficientemente claras).

          Buena suerte,

          Rudy.
          1. Hola Rudy, gracias por tu respuesta, encontré lo que quería hacer mientras tanto. Aquí hay una parte del código que hice para mi aplicación por si puede ayudar a alguien:

            Private Sub Form_Load()

            MSFlexGrid1.Cols = 4
            MSFlexGrid1.FixedCols = 0

            rsSession.MoveFirst

            MSFlexGrid1.ColWidth(0) = 1500
            MSFlexGrid1.ColWidth(1) = 1500
            MSFlexGrid1.ColWidth(2) = 1700
            MSFlexGrid1.ColWidth(3) = 1500

            MSFlexGrid1.Row = 0
            MSFlexGrid1.Text = "Código de sesión"
            MSFlexGrid1.Col = 1
            MSFlexGrid1.Row = 0
            MSFlexGrid1.Text = "Código de etapa"
            MSFlexGrid1.Col = 2
            MSFlexGrid1.Row = 0
            MSFlexGrid1.Text = "Fecha de sesión"
            MSFlexGrid1.Col = 3
            MSFlexGrid1.Row = 0
            MSFlexGrid1.Text = "Animador"

            Do Until rsSession.EOF

            MSFlexGrid1.AddItem rsSession("CodeSession") & Chr(9) & rsSession("CodeStage") & Chr(9) & rsSession("DateSession") & Chr(9) & rsSession("NumAnim")
            rsSession.MoveNext

            Loop

            End Sub
          2. @klowleadHola
            he ejecutado tu código principal y tengo un error en la línea
            Do Until rsSession.EOF

            MSFlexGrid1.AddItem rsSession("CodeSession") & Chr(9) & rsSession("CodeStage") & Chr(9) & rsSession("DateSession") & Chr(9) & rsSession("NumAnim")
            rsSession.MoveNext

            Loop
            ayúdame por favor, realmente lo necesito