escribir en flexgrid

juank
01 de Octubre del 2004
Necesito saber si se puede escribir en las celdas de un flexgrid en tiempo de ejecución.

alexir
01 de Octubre del 2004
si si se puede y es super facil
pero me tuve que cavezear un monton

tyienes que dejar el recordset Optimistic

yo lo ice de estra forma


Set RsIngresoCotizacion = New ADODB.Recordset
RsIngresoCotizacion.ActiveConnection = CN
RsIngresoCotizacion.CursorType = adOpenKeyset
RsIngresoCotizacion.LockType = adLockOptimistic
RsIngresoCotizacion.CursorLocation = adUseClient


espero que te sirva

sdemingo
01 de Octubre del 2004
Hola,

si que se puede ;-)

Un saludo
sdemingo

Pablo
01 de Octubre del 2004
hola la vdd yo tengo una duda, espero me puedas (o puedan) ayudar... tengo un pekeño inventario obvio en un flexgrid... y quiero editar los datos directamente.. como si fuera estilo excel q le pikas y lo editas asi sin problemas.. alguien sabe como hacer esto?

Juan
01 de Octubre del 2004
¿Has leido el resto de los posts? un poco más arriba
tienes 3 ejemplos de código fuente para hacer eso.

Baltasar
01 de Octubre del 2004
sdemingo, jajajajaj

bueno, ahora seamos más serios:

Mgrid1.textmatrix(fila,columna)="TEXTO A ESCRIBIR"

donde fila y columna, pues supongo que no hay que explicarlo, verdad?

eso sí, antes asegúrate de que existen esas filas y columnas, si no, dales valor con
MGRID1,COLS=numerodecolumnas
MGRID1.ROWS=numerodefilas

Saludos

juank
01 de Octubre del 2004
Hola, otra vez.

Lo que realmente quisiera saber es, como hago para digitar en una celda de un flexgrid, estando el formulario en ejecución.
o saber con qué objeto puedo hacer esto, sin manejar bases de datos. solo introducir información en la grilla.

Baltasar
01 de Octubre del 2004
Te refieres a hacer como si las celdas del msflexgrid fueran textbox?

Si es eso lo que quieres hacer, yo lo he solucionado trabajando en el evento keypress y keydown, no es demasiado complicado. Cuando se pulse una tecla en el grid, miras la celda en la que estás y le añades esa ltecla (letra, número) al contenido de la celda. Si se pulsa la tecla de retroceso borras un caracter de la celda. El único "fallo" es que no posees cursor como en el textbox, pero dado el resultado que ofrece, no hace falta.
Si necesitas un ejemplo, avisa.

Saludos

juank
01 de Octubre del 2004
Te agradecería si me envías un ejemplo del codigo. Creo que esto es lo que necesito.

Gracias.

Baltasar
01 de Octubre del 2004
pon un msflexgrid MGRID1 y añade este código:

Private Sub MGrid1_EnterCell()
MGrid1.CellBackColor = RGB(240, 240, 240)
End Sub
Private Sub MGrid1_LeaveCell()
MGrid1.CellBackColor = RGB(255, 255, 255)
End Sub
Private Sub MGrid1_KeyPress(KeyAscii As Integer)
Dim T As String
T = MGrid1.Text
If KeyAscii = 8 Then
If Len(T) > 0 Then T = Left(T, Len(T) - 1)
Else
T = T + Chr(KeyAscii)
End If
MGrid1.Text = T
End Sub

como verás, cambio el color de la celda para saber donde está el "cursor". la tecla de borrado izquierda funciona como debe ser, y la de suprimir, al no haber cursor, no tiene sentido, aunque yo a veces hago que borre toda la celda (depende de la aplicación)

Saludos

jhon
01 de Octubre del 2004
Hola, yo tambien tenía este problema de escribir como si fuera excel, además quería seleccionar de listas incluidas en el flexgrid como un filtro en excel.

Para esto desarrollé un OCX que con gusto compartiré con Uds, viene con un manual y ejemplo

Saludos desde Perú

Jhon