Visual Basic - problema con ARCHIVOS

Life is soft - evento anual de software empresarial
 
Vista:

problema con ARCHIVOS

Publicado por txetxo (88 intervenciones) el 09/06/2003 14:16:03
Hola:
tengo las siguientes instrucciones:

Private Sub guardar_Click()
i = 1
Open "costes.txt" For Output As 1
For i = 1 To grid1.Rows
cod = grid1.TextMatrix(i, 1)
descrip = grid1.TextMatrix(i, 2)
pvp = grid1.TextMatrix(i, 3)
mat = grid1.TextMatrix(i, 4)
cmo = grid1.TextMatrix(i, 5)
tpt = grid1.TextMatrix(i, 6)
var = grid1.TextMatrix(i, 7)
cnt = grid1.TextMatrix(i, 8)
porcent = grid1.TextMatrix(i, 9)
rcm = grid1.TextMatrix(i, 10)
volumen = grid1.TextMatrix(i, 11)
importe = grid1.TextMatrix(i, 12)
contrib = grid1.TextMatrix(i, 13)
Write #1, cod, descrip, pvp, mat, cmo, tpt, var, cnt, porcent, rcm, volum
i = i + 1
Next i
Close #1
End Sub

y al ejecutar me da el siguiente error:

error 381 en tiempo de ejecucion
el subindice esta fuera del intervalo

¿Sabe alguien a que puede ser debido este fallo?

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con ARCHIVOS

Publicado por kikecg (352 intervenciones) el 09/06/2003 15:49:30
Hola.
De momento hay una linea que te sobra, que es la que incrementas el valor de i (i = i + 1). Al estar en un bucle for, este incremento se hace automaticamente, y al indicarselo tu a mano es posible que te pases del tope de grid1.Rows.
Si no es ese el problema, averigua si grid1.Rows comienza en 0 o en 1, por que tambien ese podría ser el problema.
Lo mejor es que ejecutes el procedimiento paso a paso y vayas viendo al valor que toma i y si se corresponde con el numero de fila del grid.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con ARCHIVOS

Publicado por POLA (522 intervenciones) el 09/06/2003 16:10:57
El problema lo tienes en el bucle FOR.

For I = 1 To MsFlexGrid.Rows-1
' AQUI VENDRIA TU CÓDIGO.
Next I

El control MsFlexGrid la primera fila corresponde al índice '0', la propiedad Rows te devuelve el número de filas totales de dicho control pero deberás de descontar la fila '0' ya que tu bucle empieza en la fila '1', espero haberme expicado con claridad, si tienes alguna duda envíame un correo y lo comentamos.

Saludos Pola
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar