• Sábado 21 de Diciembre de 2024, 11:23

Autor Tema:  Error 13: Porque se origina?. Causas.  (Leído 2201 veces)

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Error 13: Porque se origina?. Causas.
« en: Lunes 14 de Septiembre de 2009, 18:54 »
0
Porque se origina este error... En mi codigo no veo ningun error y los OCX que utilizo parecen estar bien...
Me gustaria estudiar este error... Alguien me ayuda.


Saludos.


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Error 13: Porque se origina?. Causas.
« Respuesta #1 en: Martes 15 de Septiembre de 2009, 18:08 »
0
Es un problema de tipos de variables... el error seguramente está en tu código, pero en determinadas situaciones pasa inadvertido...
Por ejemplo observa este código, valor es un variant, le asignamos una cifra numérica y lo mostramos... ok
 luego le asignamos una matriz y la mostramos... ok (aunque no presenta nada)
sin embargo cuando llamamos al procedimiento mostrar valor, espera un byte, como le pasamos un variant se lo traga, pero cuando procesa el variant ve que aunque el variant tiene una matriz de bytes, sólo acepta una variable byte no una matriz... de paso reproduzco otros 2 errores de la misma naturaleza...

Código: Visual Basic
  1.  
  2. Private Sub Form_Load()
  3.     Dim bytes(0 To 9) As Byte
  4.     Dim Valor As Variant
  5.    
  6.     On Local Error GoTo showError
  7.    
  8.     ' OK....
  9.    Valor = 2009
  10.     Debug.Print Valor
  11.     MsgBox Valor
  12.    
  13.     ' ERROR: 13 error de tipo de variable
  14.    Valor = bytes
  15.     Debug.Print Valor
  16.     MsgBox Valor
  17.     MostrarValor (Valor)
  18.  
  19.     ' ERROR: 6 error de desbordamiento
  20.    Valor = 2009
  21.     Debug.Print Valor
  22.     MsgBox Valor
  23.     MostrarValor (Valor)
  24.    
  25.     ' ERROR: 450 error de tipo de argumentos...
  26.    Set Valor = Form1
  27.     MsgBox Valor
  28.     MostrarValor (Valor)
  29.    
  30.     Exit Sub
  31. showError:
  32.     MsgBox "Error: Nº " & Err.Number & vbCrLf & Err.Description & vbCrLf & Err.Source
  33.     Err.Clear
  34.     Resume Next
  35. End Sub
  36.  
  37. Private Sub MostrarValor(ByVal n As Byte)
  38.     MsgBox n
  39. End Sub
  40.  
  41.  

... a veces canta un error 450 en vez del 13, si consigue identificar con más detalle el error y también el error 6 (desboradmiento), pero cuando no queda claro (donde más suele ocurrir son en las clases) y no hay un gestor de errores salta el 13.

La variable que más se presta a este tipo de error son los variant, pero también los de tipo Date y el propio CVERR... (convertir a error).
Si ejecutas el código que te he puesto paso a paso (F8) lo entenderás mejor, viendo donde se produce el mismo.
«Ma non troppo»
----> ModoVacaciones = False<----

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Re: Error 13: Porque se origina?. Causas.
« Respuesta #2 en: Martes 15 de Septiembre de 2009, 22:21 »
0
Mi amigo Nebire siempre ayudandome....
No sabes cuan agradecido estoy contigo... Me sirvió bastante esa explicación....
Gracias.  ^_^


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]