Flexgrid

Pau
08 de Junio del 2004
A ver tengo en un flexgrid datos de un tabla, y necesito guardar esos datos pero con el commondialogue no me permite usar la propiedad savefile, no se porque, y quiero poder pasar esos datos a otro control a lo que sea que me permita usar el savefile del commondialogue. o si hay otra manera de hacer un boton guardar que me permita guardar los cambios.
gracias

yuval
08 de Junio del 2004
Hola Pau donde lo quieres guardar en una base de datos un fichero,....?

Pau
08 de Junio del 2004
En un fichero, para despues poderlo imprimir si me dijeses como tambien te lo agradeceria.
miles de gracias

yachar
08 de Junio del 2004
depende de como quieras guardar los datos.
los quieres guardar en un fichero de texto? o actualizar los campos en la tabla de la BD?
si quieres guardarlos en un fichero de texto, si que deberias de poder usar el commondialog, aunque tendrias que crear tu "manualmente" un fichero de texto con una estructura de tabla, ya sea con espacios, o caracteres especiales:
p.e.: nombre;apellidos;direccion
algo asi:
for i=0 to grid.rows-1
for j=0 to grid.cols-1
texto=texto & grid.textmatrix(i,j) & ";"
next j
texto=texto & vbcrlf
next i

despues escribes todo es en el fichero con el cmdialog, y deberia ir no?
espero que te sirva

peace&love

Pau
08 de Junio del 2004
Ese codigo que me escribiste, le meto en el grid en el que tengo los datos de la bd?
Si es si, despues que tengo que hacer el codigo normal del commondialogue en el boton en el que tenga guardar no?

yachar
08 de Junio del 2004
ese codigo lo metes en un boton "guardar" (o como quieras)
y despues, en el commondialog, lo utilizas normal, escribiendo en un fichero de texto la variable que yo llame 'texto'
(tambien puedes modificar ese codigo para que guarde cada vez que salga del for J, y no tengas una variable tan grande, eso segun prefieras tu)

asi te quedaria un fichero de esta forma:

nombre;direccion;telefono;ciudad;
nombre2;direccion2;telefono2;ciudad2;

ahora que puedes darle un formato mas decente cambiando las ";" por puntos, o espacios...o lo que tu creas conveniente.

suerte!

Pau
08 de Junio del 2004
Ese codigo que tu me diste ya le tengo metido y eso me crea como si dijesemos una caja de texto en la que yo meto los valores del grid, pero luego a la hora de usar el commondialogue tengo que poner
"algo".savefile
para que ese algo sea lo que me guarde y si pongo tu variable texto no me admite la propiedad, entonces que pongo ahi no me admite nada

yachar
08 de Junio del 2004
ampliando un poco mas ese codigo...:

Private Sub Command1_Click()
Dim fso As New FileSystemObject
Dim fichero As TextStream
Dim texto As String
For i = 0 To grid.Rows - 1
For j = 0 To grid.Cols - 1
texto = texto & grid.TextMatrix(i, j) & ";"
Next j
texto = texto & vbCrLf
Next i
'el cmd es el commondialog
cmd.ShowOpen
Set fichero = fso.OpenTextFile(cmd.FileName, ForWriting)
fichero.Write texto
End Sub

eso te graba en el fichero que escojas los datos del grid
tienes q agregar la referencia microsoft scripting runtime.
a ver si ahora te vale...suerte:p

Pau
08 de Junio del 2004
Perdona pero no se qu ees eso de la referencia de micorosft madre mia vaya vara que te estoy dando

yachar
08 de Junio del 2004
jajaja, no importa, veo que aun estas muy verde en esto no?
vete al menu proyecto-referencias....
ahi busca "microsoft scripting runtime", marca la casilla, y dale a aceptar.
si dios quiere, tiene q funcionar xDD

pau
08 de Junio del 2004
bien ahora me sale el cuadro de guardar pero el rpoblema es que me da error y me subraya de amarillo la linea
Set fichero = fso.OpenTextFile(control.FileName, ForWriting)
y si dios mio estoy muy muy verde y encima me meti en un proyecto que no se si acabare
quien me mandara

Pau
08 de Junio del 2004
hay mi madre y al ejecutarlo me dice:
fso As New FileSystemObject
(en este trozo
no se ha definido el tipo definido por el usuario

sdemingo
08 de Junio del 2004
Tienes que añadir la referencia Microsotf Scripting Runtime