border
VB 6
 
 
  #1 (permalink)  
Antiguo 30-04-2004, 00:00:00
Nuevo Amigo
 
Registrado: mar 2004
Posts: 15
Créditos: 1.100
marta19 Valoración +2
Predeterminado ERROR 9 EL subíndice está fuera del intervalo

ERROR 9 EL subíndice está fuera del intervalo

Ejecutando el mismo código, sin tocar absolutamente nada hay veces que en ejecución me sale "ERROR 9. El subíndice está fuera del intervalo" y ptras veces no. No lo entiendo. ¿A qué puede deberse?

Saludos a todos y especialmente a J.M. Movilla. Sin su ayuda no hubiera coneguido finalizar mi aplicación.</TR>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #2 (permalink)  
Antiguo 30-04-2004, 00:00:00
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.258
J.M.Movilla ha deshabilitado la reputación
Predeterminado RE: ERROR 9 EL subíndice está fuera del intervalo

RE: ERROR 9 EL subíndice está fuera del intervalo

Pues a que estás asignando a un array un número de elemento inexistente... Pero qué array es el que te falla?... eso lo tienes que localizar con el debug, y ver cuándo y por qué le asignas un valor que no existe...
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #3 (permalink)  
Antiguo 30-04-2004, 00:00:00
Nuevo Amigo
 
Registrado: mar 2004
Posts: 15
Créditos: 1.100
marta19 Valoración +2
Predeterminado RE: ERROR 9 EL subíndice está fuera del intervalo

RE: ERROR 9 EL subíndice está fuera del intervalo

Hola J.M. Movilla:

Pues mira el error resulta que me da en el código que me enviaste para guardar una imagen en un campo ole de una tabla temporal. Lo extraño es que sin modificar para nada ni la ruta de la foto en la tabla principal ni tocar para nada el fichero de .bmp hay veces que me da el error y otras funciona. No entiendo. Te pongo el cógigo y te digo donde me da el error al hacer el Debug (cuando me lo da):

Public Sub SaveBitmap(ByRef adoRS As ADODB.Recordset, ByVal strField As String, ByVal SourceFile As String)
Dim Arr() As Byte
Dim Pointer As Long
Dim SizeOfThefile As Long

Pointer = lOpen(SourceFile, OF_READ)
SizeOfThefile = GetFileSize(Pointer, lpFSHigh)
lclose Pointer

ReDim Arr(SizeOfThefile) ** <FONT color=#ff0000>Aqui es donde me da el error. Si declaro Dim Arr() As integer entonces ya nunca me da el error aquí pero me lo da en la última línea </FONT>

Open SourceFile For Binary Access Read As #1
Get #1, , Arr
Close #1
adoRS(strField).Value = Arr ** <FONT color=#ff0000>si Arr es Integer o double... aquí me da El ERROR "Tipo Incorrecto."</FONT>
End Sub


Una duda más. Si yo quiero declarar Arr de 0 a 512 en vez de como byte que es de 0 a 255 ¿cómo lo hago?

Un afectuoso Saludo,

Marta</TR>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #4 (permalink)  
Antiguo 30-04-2004, 00:00:00
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.258
J.M.Movilla ha deshabilitado la reputación
Predeterminado RE: ERROR 9 EL subíndice está fuera del intervalo

RE: ERROR 9 EL subíndice está fuera del intervalo

Acabo de hacer la prueba, declarando Dim Arr() As Byte y he conseguido grabar una imagen .bmp de 25 Mb sin más problema que su lentitud (ha tardado caso 20 segundos y pensé que se me había flipado...) Pero no ha dado error.

¿No será que utilizas .jpg... que ya te dije que a mí me daba errores?
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #5 (permalink)  
Antiguo 17-09-2004, 00:00:00
Avatar de acalanto
Administrador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 6.219
Créditos: 52.484
acalanto ha deshabilitado la reputación
Predeterminado RE: ERROR 9 EL subíndice está fuera del intervalo

RE: ERROR 9 EL subíndice está fuera del intervalo

El error no te puede dar nunca en la redimensión del array siempre y cuando no supere el límite de un tipo Long, cosa que creo poco probable.

Me creo en la obligación de aclararte un concepto por el último comentario que pones.

Si tú dimensionas un array de 0 a 512 del tipo byte te ocupará en memoria lo mismo que un integer de 0 a 255 pero si tu dimensionas un array de 0 a 255 tipo byte yy otro de 0 a 255 typo integer, el número de items del array será de 0 a 255 en ambas, la primera ocupará 256 bytes y la segunda 512 (más la porción de stack que VB utiliza para apuntar el array).

Para trabajar con ficheros binarios utiliza siempre el tipo BYTE ya que si abres un fichero binario, -como el de una imágen-, y dimensionas Arr(0 to <sizeofthefile-1> as byte y lees desde el primer byte del fichero, te lo cargará todo en dicho array.

Aún en el supuesto caso de que dimensiones una cantidad menor a la longitud del fichero, no te produiciría error en la carga, eso si, no tendrías la totalidad de la imágen cargada en el array y las consecuencias pueden resultar imprevisibles.

No cometas el error de dimensionar a integer, porque si dimensionas un array del número de bytes del fichero y lo lees en dicho array, te cargará en la primera mitad la imágen y en la segunda todo tipo de basura que encuentre en disco, ya que estás leyendo el doble de lo que éste tiene. !! Imáginate el tipo de imágen que conseguirás !!, si es que consigues algo.

Con todo este rollo, te quiero decir que me extraña el error que se te produce y dónde se te produce. Verifica con el paso a paso la longitud del fichero, no vaya a ser que en algún caso tenga longitud 0 y así si que es posible que te produzca error.


Un saludo
-Acalanto-</TR>
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Leer detalladamente las normas del foro es una buena forma de comenzar a participar en él. Te llevará unos pocos minutos y el colectivo de usuarios te lo agradecerá. <si no las has leído sigue este enlace>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #6 (permalink)  
Antiguo 12-01-2012, 20:48:41
Nuevo Amigo
 
Registrado: nov 2011
Posts: 5
Créditos: 631
will_lover Aun no valorado
Predeterminado Re: ERROR 9 EL subíndice está fuera del intervalo

Private Sub command3_click()
Dim s, s2 As String
' Dim ag2, ag3, ag4 As String
Dim f1, f2 As String
Dim matcomb() As String
Dim cuenComb, I As Integer
Dim doc As New Word.Application
Dim parrafo As Table
Dim c, f As Long
Dim oRange As Range


cuenComb = 0

s = "select convert(smalldatetime,fecha_recepgan)as Fecha,num_recepgan,lote,corral,cant_recepgan,tipo_ animal,procedencia_origen,peso_vivo,marca,desde_re cepgan,hasta_recepgan from Recepcion_ganado where fecha_recepgan between '" & f1 & "' AND '" & f2 & "' order by fecha_recepgan"

Set rs = CN.Execute(s)
While Not rs.EOF
cuenComb = cuenComb + 1
rs.MoveNext
Wend

ReDim matcomb(cuenComb - 1, 10) F' DICE QUE EXISTE EL ERROR 9 EN TIEMPO DE EJECUCIÓN SUBINDICE FUERA DEL INTERVALO. pODRIAN AYUDARME PLEASE A ENCONTRAR EL ERROR.

Set rs = CN.Execute(s)
For I = 0 To cuenComb - 1
matcomb(I, 0) = rs!fecha_recepgan
matcomb(I, 1) = rs!num_recepgan
matcomb(I, 2) = rs!lote
matcomb(I, 3) = rs!corral
matcomb(I, 4) = rs!cant_recepgan
matcomb(I, 5) = rs!tipo_animal
matcomb(I, 6) = rs!procedencia_origen
matcomb(I, 7) = rs!peso_vivo
matcomb(I, 8) = rs!marca
matcomb(I, 9) = rs!desde_recepgan
matcomb(I, 10) = rs!hasta_recepgan
rs.MoveNext
Next I

'''''''''''''''''''''
'crea documento word'
'''''''''''''''''''''
Set doc = New Word.Application
With doc
.Application.Documents.Open App.Path + "\plantillas\Orfa.dot"

'selecciona marcador tabla1
.Documents.Item(1).Bookmarks.Item("tabla1").Select

With .Selection
.Document.Tables.Add Range:=.Range, numrows:=cuenComb + 1, numcolumns:=10, defaulttablebehavior:=wdWord9TableBehavior, _
AutoFitBehavior:=wdAutoFitFixed
End With

With .Selection.Tables(1)
'inserta texto
.Cell(1, 1).Range.InsertAfter "Fecha"
.Cell(1, 1).Range.Font.Bold = wdToggle
.Cell(1, 1).Range.Font.Color = wdColorBlue
.Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 1).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 2).Range.InsertAfter "Nº Recep.Ganado"
.Cell(1, 2).Range.Font.Bold = wdToggle
.Cell(1, 2).Range.Font.Color = wdColorBlue
.Cell(1, 2).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 2).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 3).Range.InsertAfter "Lote"
.Cell(1, 3).Range.Font.Bold = wdToggle
.Cell(1, 3).Range.Font.Color = wdColorBlue
.Cell(1, 3).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 3).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto
.Cell(1, 4).Range.InsertAfter "Corral"
.Cell(1, 4).Range.Font.Bold = wdToggle
.Cell(1, 4).Range.Font.Color = wdColorBlue
.Cell(1, 4).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 4).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto
.Cell(1, 5).Range.InsertAfter "Cant."
.Cell(1, 5).Range.Font.Bold = wdToggle
.Cell(1, 5).Range.Font.Color = wdColorBlue
.Cell(1, 5).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 5).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto
.Cell(1, 6).Range.InsertAfter "T.Animal"
.Cell(1, 6).Range.Font.Bold = wdToggle
.Cell(1, 6).Range.Font.Color = wdColorBlue
.Cell(1, 6).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 6).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto
.Cell(1, 7).Range.InsertAfter "Proveedor"
.Cell(1, 7).Range.Font.Bold = wdToggle
.Cell(1, 7).Range.Font.Color = wdColorBlue
.Cell(1, 7).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 7).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 8).Range.InsertAfter "Procedencia"
.Cell(1, 8).Range.Font.Bold = wdToggle
.Cell(1, 8).Range.Font.Color = wdColorBlue
.Cell(1, 8).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 8).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 9).Range.InsertAfter "Peso"
.Cell(1, 9).Range.Font.Bold = wdToggle
.Cell(1, 9).Range.Font.Color = wdColorBlue
.Cell(1, 9).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 9).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 10).Range.InsertAfter "Marca"
.Cell(1, 10).Range.Font.Bold = wdToggle
.Cell(1, 10).Range.Font.Color = wdColorBlue
.Cell(1, 10).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 10).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 11).Range.InsertAfter "Nº Desde"
.Cell(1, 11).Range.Font.Bold = wdToggle
.Cell(1, 11).Range.Font.Color = wdColorBlue
.Cell(1, 11).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 11).VerticalAlignment = wdCellAlignVerticalCenter

'inserta texto cantidad
.Cell(1, 12).Range.InsertAfter "Nº Hasta"
.Cell(1, 12).Range.Font.Bold = wdToggle
.Cell(1, 12).Range.Font.Color = wdColorBlue
.Cell(1, 12).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Cell(1, 12).VerticalAlignment = wdCellAlignVerticalCenter

For I = 2 To cuenComb + 1
'.Cell(I, 1).Range.InsertAfter matcomb(I - 2, 0)
.Cell(I, 1).Range.InsertAfter Format(matcomb(I - 2, 0), "dd-mm-yy")
.Cell(I, 2).Range.InsertAfter matcomb(I - 2, 1)
.Cell(I, 3).Range.InsertAfter matcomb(I - 2, 2)
.Cell(I, 4).Range.InsertAfter matcomb(I - 2, 3)
.Cell(I, 5).Range.InsertAfter matcomb(I - 2, 4)
.Cell(I, 6).Range.InsertAfter FormatCurrency(Round(matcomb(I - 2, 5)), 0)
.Cell(I, 7).Range.InsertAfter matcomb(I - 2, 6)
.Cell(I, 8).Range.InsertAfter matcomb(I - 2, 7)
.Cell(I, 9).Range.InsertAfter matcomb(I - 2, 8)
.Cell(I, 10).Range.InsertAfter matcomb(I - 2, 9)
.Cell(I, 11).Range.InsertAfter matcomb(I - 2, 10)
.Cell(I, 12).Range.InsertAfter matcomb(I - 2, 11)


Next I

'ajusta tamaños

'columna 1
.Columns(1).PreferredWidthType = wdPreferredWidthPoints
.Columns(1).PreferredWidth = doc.CentimetersToPoints(2.3)

'columna 2
.Columns(2).PreferredWidthType = wdPreferredWidthPoints
.Columns(2).PreferredWidth = doc.CentimetersToPoints(0.8)

'columna 3
.Columns(3).PreferredWidthType = wdPreferredWidthPoints
.Columns(3).PreferredWidth = doc.CentimetersToPoints(0.3)

'columna 4
.Columns(4).PreferredWidthType = wdPreferredWidthPoints
.Columns(4).PreferredWidth = doc.CentimetersToPoints(0.8)

'columna 5
.Columns(5).PreferredWidthType = wdPreferredWidthPoints
.Columns(5).PreferredWidth = doc.CentimetersToPoints(0.8)

'columna 6
.Columns(6).PreferredWidthType = wdPreferredWidthPoints
.Columns(6).PreferredWidth = doc.CentimetersToPoints(6.5)

'columna 7
.Columns(7).PreferredWidthType = wdPreferredWidthPoints
.Columns(7).PreferredWidth = doc.CentimetersToPoints(0.8)

'columna 8
.Columns(8).PreferredWidthType = wdPreferredWidthPoints
.Columns(8).PreferredWidth = doc.CentimetersToPoints(3.2)

'columna 9
.Columns(9).PreferredWidthType = wdPreferredWidthPoints
.Columns(9).PreferredWidth = doc.CentimetersToPoints(9)

'columna 10
.Columns(10).PreferredWidthType = wdPreferredWidthPoints
.Columns(10).PreferredWidth = doc.CentimetersToPoints(6.8)


.Columns(11).PreferredWidthType = wdPreferredWidthPoints
.Columns(11).PreferredWidth = doc.CentimetersToPoints(6.8)


.Columns(12).PreferredWidthType = wdPreferredWidthPoints
.Columns(12).PreferredWidth = doc.CentimetersToPoints(6.8)

'aplica estilo a toda la tabla
.Style = "Tabla con lista 5"
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True

End With

'selecciona marcador tabla2
.Documents.Item(1).Bookmarks.Item("tabla2").Select

With .Selection
.Document.Tables.Add Range:=.Range, numrows:=cuenComb2 + 1, numcolumns:=3, defaulttablebehavior:=wdWord9TableBehavior, _
AutoFitBehavior:=wdAutoFitFixed
End With

End With
End Sub



MUCHAS GRACIAS.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #7 (permalink)  
Antiguo 12-01-2012, 23:00:49
Avatar de acalanto
Administrador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 6.219
Créditos: 52.484
acalanto ha deshabilitado la reputación
Predeterminado Re: ERROR 9 EL subíndice está fuera del intervalo

Si, te voy a ayudar un poco estimado will_lover.

Picha el link o el que que tengo en mi firma al pie de mensaje, enlace que te conducirá a las normas del foro. Una vez las hayas comprendido, podremos ayudarte más.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Leer detalladamente las normas del foro es una buena forma de comenzar a participar en él. Te llevará unos pocos minutos y el colectivo de usuarios te lo agradecerá. <si no las has leído sigue este enlace>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
Respuesta


Herramientas

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
extraño error me esta matando. ThE_AsUs Visual Basic 6.00 1 03-10-2007 08:30:45
Calcular intervalo de tiempo VB 6 Panxo Visual Basic 6.00 5 16-05-2007 17:03:18
Error: La informacion del error no esta disponible EagleFlyFree Visual Basic.NET 7 04-05-2007 15:12:30
Error el archivo ya esta en uso Insomnia17 Visual Basic 6.00 3 13-01-2006 08:19:34
Componente fuera de proceso. McruzAT Visual Basic 6.00 13 06-01-2005 20:30:08


La franja horaria es GMT. Ahora son las 17:03:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
© VB-MUNDO CO. Todos los derechos reservados
Tutoriales Premium | Juegos Online 


right

Programacion, vb 6, visual basic, foro programacion

Inactive Reminders By Icora Web Design