Control MSFlixgtrid

Hola, tengo un control MsFlexgrid, al cual quiero añadirle datos, he logrado introducir los datos en la primera fila, pero cuando intento que se vayan añadiendo nuevos datos es decir que los nuevos datos sean en la fila siguiente no lo consigo, se queda siempre en la misma fila y me sobrescribe los datos.
El código que tengo es este:
Public columna As Integer
Public fila As Integer
-----------
Dim ventana2 As String
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" _
Or Text4.Text = "" Then
ventana2 = MsgBox("Debes rellenar todos los campos", vbInformation, "Rellenar")
Else
columna = 0
fila = 0
columna = columna + 1
fila = fila + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text1.Text
columna = columna + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text2.Text
columna = columna + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text3.Text
columna = columna + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text4.Text
End If
Necesito ayuda ya!
Gracias

4 respuestas

Respuesta
1
<%=Texto%>
Buenas, con el siguiente código va agregando un dato abajo del otro.
Espero que te sirva
Saludos,
Andrés
Private Sub Command1_Click()
Dim columna As Integer
Dim fila As Integer
Dim ventana2 As String
columna = 0
fila = 0
columna = columna
rejilla.AddItem 1, 1
rejilla.Row = fila + 1
rejilla.Col = columna
rejilla.Text = 1
columna = columna + 1
rejilla.Row = fila + 1
rejilla.Col = columna
rejilla.Text = 2
columna = columna + 1
rejilla.Row = fila + 1
rejilla.Col = columna
rejilla.Text = 3
columna = columna + 1
rejilla.Row = fila + 1
rejilla.Col = columna
rejilla.Text = 4
End Sub
Gracias, funciona perfectamente, pero me gustaría que cada vez que insertara una nueva fila pusiera en una columna el numero de fila que es, por ejemplo fila 1, fila 2,...
Saludos
Para hacer esto hay un pequeño problema;yo estoy insertando los registros al principio, y no al final; ya que no recuerdo como hacer para obtener el número de filas, pensé que era con rows, pero no sirve; la verdad que con eso ya no te puedo ayudar.
Yo que vos, buscaría en google.com o en planetsourcecode.com algún ejemplo completo del msflexgrid, ya que muy poca gente que lo utiliza (yo jamás lo usé) y mucho sobre él no se conoce.
Respuesta
1
te falta hacer refresh o update
Para que baje el cursor a la fila siguiente...
como se hace eso del refresh o update? Saludos y gracias
Estuve revisando el código
Ya se donde esta el error
Cuando empiezas pones la columna y la fila en 0.
La columna si debe estar en 0, porque deben llenarse todos los campos, pero la fila tiene que tener el total de filas +1.
Control msflexgrid (16/05/03)
Hola, tengo un control MsFlexgrid, al cual quiero añadirle datos, he logrado introducir los datos en la primera fila, pero cuando intento que se vayan añadiendo nuevos datos es decir que los nuevos datos sean en la fila siguiente no lo consigo, se queda siempre en la misma fila y me sobrescribe los datos.
El código que tengo es este:
Public columna As Integer
Public fila As Integer
-----------
Dim ventana2 As String
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" _
Or Text4.Text = "" Then
ventana2 = MsgBox("Debes rellenar todos los campos", vbInformation, "Rellenar")
Else
columna = 0
Fila = 0 'la verdad es que no recuerdo como obtener el total de filas,,, pero debe haber alguna propiedad de donde pueda obtenerlo... rows. Creo que con esa te devuelve el numero total...
columna = columna + 1
fila = fila + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text1.Text
columna = columna + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text2.Text
columna = columna + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text3.Text
columna = columna + 1
rejilla.Row = fila
rejilla.Col = columna
rejilla.Text = Text4.Text
Respuesta
1
Por lo que veo en esa rutina, a la propiedad .Row solo le asignas el numero 1 nada más, en ningún momento incrementas esa variable, veo que la rutina solo carga datos en una fila sola y te vas moviendo de columna para rellanar todas las celdas, pero la fila siempre es la 1.
Fíjate de definir la variable "fila" en el procedimiento general del formulario de esta manera:
Dim fila As Integer
Y saca la lina que inicializa la variable con el dato en 0
...
Else
columna = 0
fila = 0 ;esto lo borras
...
Así cada vez que llamas a la rutina estarás parado en la fila siguiente.
Respuesta
1
Analiza este código.
rejilla.Row = 1
rejilla.Col = 1
rejilla.Text = "FILA 1 COLUMNA 1"
rejilla.Row = 1
rejilla.Col = 2
rejilla.Text = "FILA 1 COLUMNA 2"
rejilla.Row = 1
rejilla.Col = 3
rejilla.Text = "FILA 1 COLUMNA 3"
rejilla.Row = 1
rejilla.Col = 4
rejilla.Text = "FILA 1 COLUMNA 4"
rejilla.Row = 2
rejilla.Col = 1
rejilla.Text = "FILA 2 COLUMNA 1"
rejilla.Row = 2
rejilla.Col = 2
rejilla.Text = "FILA 2 COLUMNA 2"
rejilla.Row = 2
rejilla.Col = 3
rejilla.Text = "FILA 2 COLUMNA 3"
rejilla.Row = 2
rejilla.Col = 4
rejilla.Text = "FILA 2 COLUMNA 4"
PD:
Si lo que quieres es hacer que se comporte como un recordset por ejemplo
GRID. AddNew
GRID.Columns(0)="hola"
GRID.AddNew 'esta fila se agregaria autoamticamente en la fila que sigue
GRID.Columns(0)="mundo"
Lo anterior no es posible
Por que mejor no colocas todos tus datos en un recordset y luego lo ligas al FlexGrid?, de esa forma si se podria, es decir primero manipulas es recordset con instrucciones addnew o como lo tengas que hacer y luego simplemente haces
set FlexGrid1.DataSource=rs
Veo que el flexgrid lo estas llenando a mano coloando en las celdas los valores de unos textboxes y no desde un recordset, si lo llenas a mano no te queda más que controlar manualmente la fila actual.
También puedes ligar la propiedad datasource del flexgrid aun datacontrol o un recordset y este se llenara automáticamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas