Cita:
Iniciado por Avellaneda
Para escribir en el FlexGrid hay varios métodos, uno podría ser este utilizando los eventos KeyPress y KeyDown del Grid:
Código:
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
' solo caracteres imprimibles
If KeyAscii >= 32 And KeyAscii <= 127 Then MSFlexGrid1.Text = MSFlexGrid1.Text & Chr(KeyAscii)
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)
Case vbKeyTab, vbKeyReturn ' Teclas <Tab> o <Intro>
If .Col = .Cols - 1 Then ' si es la última columna:
' si además en la última fila, añadimos una nueva
If .Row = .Rows - 1 Then .Rows = .Rows + 1
' nos posicionamos en la primera celda de la fila siguiente
.Row = .Row + 1
.Col = .FixedCols
.LeftCol = .FixedCols
Else ' si no, pasamos a la siguiente columna de la misma fila
.Col = .Col + 1
End If
End Select
End With
End Sub
y para imprimirlo, básicamente sería así:
Código:
Private Sub cmdImprimir_Click()
Dim iFila, iCol As Integer
For iFila = 1 To MSFlexGrid1.Rows - 1
For iCol = 1 To MSFlexGrid1.Cols - 1
Printer.Print MSFlexGrid1.TextMatrix(iFila, iCol) & Space(5);
Next iCol
' nueva línea
Printer.Print ""
Next iFila
Printer.EndDoc
End Sub
Esto se puede mejorar bastante, sólo puse lo básico.
Espero que te sea de ayuda.
Muchas gracias avellaneda, disculpa la molestia pero el codigo de modificar el flexgrid funciona perfectamente pero la cosa es que con ese codigo no me guarda los cambios que hice en el grid en mi base de datos como le puedo hacer, ademas el codigo de imprimir donde pueso conseguir mas imformacion del mismo ya que quiero imprimir un form que contiene el flexgrid pero tambien tiene texts e imagenes y todo lo quiero imprimir en una hoja como le puedo hacer o donde me informo de todo esto... te lo agradeceria muchisimo o alguien pudiese ayudarme!!!!
gracias.... saludos